@alloy-js/go 0.2.1-dev.0 → 0.3.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/dev/src/builtins/fmt/fmt.js +148 -0
  2. package/dist/dev/src/builtins/fmt/fmt.js.map +1 -0
  3. package/dist/dev/src/builtins/index.js +11 -0
  4. package/dist/dev/src/builtins/index.js.map +1 -0
  5. package/dist/dev/src/builtins/io/io.js +650 -0
  6. package/dist/dev/src/builtins/io/io.js.map +1 -0
  7. package/dist/dev/src/builtins/net/net.js +1212 -0
  8. package/dist/dev/src/builtins/net/net.js.map +1 -0
  9. package/dist/dev/src/builtins/time/time.js +464 -0
  10. package/dist/dev/src/builtins/time/time.js.map +1 -0
  11. package/dist/dev/src/components/ImportStatement.js +114 -0
  12. package/dist/dev/src/components/ImportStatement.js.map +1 -0
  13. package/dist/dev/src/components/ModuleDirectory.js +28 -0
  14. package/dist/dev/src/components/ModuleDirectory.js.map +1 -0
  15. package/dist/dev/src/components/Name.js +12 -0
  16. package/dist/dev/src/components/Name.js.map +1 -0
  17. package/dist/dev/src/components/Reference.js +15 -0
  18. package/dist/dev/src/components/Reference.js.map +1 -0
  19. package/dist/dev/src/components/SourceDirectory.js +38 -0
  20. package/dist/dev/src/components/SourceDirectory.js.map +1 -0
  21. package/dist/dev/src/components/SourceFile.js +119 -0
  22. package/dist/dev/src/components/SourceFile.js.map +1 -0
  23. package/dist/dev/src/components/doc/comment.js +46 -0
  24. package/dist/dev/src/components/doc/comment.js.map +1 -0
  25. package/dist/dev/src/components/doc/comment.test.js +371 -0
  26. package/dist/dev/src/components/doc/comment.test.js.map +1 -0
  27. package/dist/dev/src/components/function/function.js +250 -0
  28. package/dist/dev/src/components/function/function.js.map +1 -0
  29. package/dist/dev/src/components/function/function.test.js +630 -0
  30. package/dist/dev/src/components/function/function.test.js.map +1 -0
  31. package/dist/dev/src/components/index.js +16 -0
  32. package/dist/dev/src/components/index.js.map +1 -0
  33. package/dist/dev/src/components/interface/declaration.js +245 -0
  34. package/dist/dev/src/components/interface/declaration.js.map +1 -0
  35. package/dist/dev/src/components/interface/interface.test.js +853 -0
  36. package/dist/dev/src/components/interface/interface.test.js.map +1 -0
  37. package/dist/dev/src/components/package.test.js +137 -0
  38. package/dist/dev/src/components/package.test.js.map +1 -0
  39. package/dist/dev/src/components/parameters/parameters.js +102 -0
  40. package/dist/dev/src/components/parameters/parameters.js.map +1 -0
  41. package/dist/dev/src/components/parameters/typeparameters.js +93 -0
  42. package/dist/dev/src/components/parameters/typeparameters.js.map +1 -0
  43. package/dist/dev/src/components/pointer/pointer.js +8 -0
  44. package/dist/dev/src/components/pointer/pointer.js.map +1 -0
  45. package/dist/dev/src/components/stc/index.js +27 -0
  46. package/dist/dev/src/components/stc/index.js.map +1 -0
  47. package/dist/dev/src/components/struct/declaration.js +213 -0
  48. package/dist/dev/src/components/struct/declaration.js.map +1 -0
  49. package/dist/dev/src/components/struct/struct.test.js +1261 -0
  50. package/dist/dev/src/components/struct/struct.test.js.map +1 -0
  51. package/dist/dev/src/components/type/declaration.js +112 -0
  52. package/dist/dev/src/components/type/declaration.js.map +1 -0
  53. package/dist/dev/src/components/var/declaration.js +136 -0
  54. package/dist/dev/src/components/var/declaration.js.map +1 -0
  55. package/dist/dev/src/components/var/var-declaration.test.js +564 -0
  56. package/dist/dev/src/components/var/var-declaration.test.js.map +1 -0
  57. package/dist/dev/src/context/package.js +6 -0
  58. package/dist/dev/src/context/package.js.map +1 -0
  59. package/dist/dev/src/create-module.js +157 -0
  60. package/dist/dev/src/create-module.js.map +1 -0
  61. package/dist/dev/src/create-module.test.js +175 -0
  62. package/dist/dev/src/create-module.test.js.map +1 -0
  63. package/dist/dev/src/index.js +7 -0
  64. package/dist/dev/src/index.js.map +1 -0
  65. package/dist/dev/src/name-policy.js +27 -0
  66. package/dist/dev/src/name-policy.js.map +1 -0
  67. package/dist/dev/src/scopes/contexts.js +34 -0
  68. package/dist/dev/src/scopes/contexts.js.map +1 -0
  69. package/dist/dev/src/scopes/factories.js +17 -0
  70. package/dist/dev/src/scopes/factories.js.map +1 -0
  71. package/dist/dev/src/scopes/function.js +14 -0
  72. package/dist/dev/src/scopes/function.js.map +1 -0
  73. package/dist/dev/src/scopes/go.js +12 -0
  74. package/dist/dev/src/scopes/go.js.map +1 -0
  75. package/dist/dev/src/scopes/index.js +10 -0
  76. package/dist/dev/src/scopes/index.js.map +1 -0
  77. package/dist/dev/src/scopes/lexical.js +11 -0
  78. package/dist/dev/src/scopes/lexical.js.map +1 -0
  79. package/dist/dev/src/scopes/module.js +31 -0
  80. package/dist/dev/src/scopes/module.js.map +1 -0
  81. package/dist/dev/src/scopes/named-type.js +33 -0
  82. package/dist/dev/src/scopes/named-type.js.map +1 -0
  83. package/dist/dev/src/scopes/package.js +39 -0
  84. package/dist/dev/src/scopes/package.js.map +1 -0
  85. package/dist/dev/src/scopes/source-file.js +43 -0
  86. package/dist/dev/src/scopes/source-file.js.map +1 -0
  87. package/dist/dev/src/symbols/factories.js +165 -0
  88. package/dist/dev/src/symbols/factories.js.map +1 -0
  89. package/dist/dev/src/symbols/function.js +24 -0
  90. package/dist/dev/src/symbols/function.js.map +1 -0
  91. package/dist/dev/src/symbols/go.js +60 -0
  92. package/dist/dev/src/symbols/go.js.map +1 -0
  93. package/dist/dev/src/symbols/index.js +7 -0
  94. package/dist/dev/src/symbols/index.js.map +1 -0
  95. package/dist/dev/src/symbols/named-type.js +42 -0
  96. package/dist/dev/src/symbols/named-type.js.map +1 -0
  97. package/dist/dev/src/symbols/package.js +39 -0
  98. package/dist/dev/src/symbols/package.js.map +1 -0
  99. package/dist/dev/src/symbols/reference.js +76 -0
  100. package/dist/dev/src/symbols/reference.js.map +1 -0
  101. package/dist/dev/src/symbols/type-parameter.js +16 -0
  102. package/dist/dev/src/symbols/type-parameter.js.map +1 -0
  103. package/dist/dev/test/utils.js +92 -0
  104. package/dist/dev/test/utils.js.map +1 -0
  105. package/dist/dev/test/vitest.setup.js +2 -0
  106. package/dist/dev/test/vitest.setup.js.map +1 -0
  107. package/dist/src/components/SourceFile.d.ts.map +1 -1
  108. package/dist/src/components/SourceFile.js +2 -2
  109. package/dist/src/components/SourceFile.js.map +1 -1
  110. package/dist/src/components/type/declaration.d.ts.map +1 -1
  111. package/dist/src/components/type/declaration.js +2 -2
  112. package/dist/src/components/type/declaration.js.map +1 -1
  113. package/dist/src/create-module.d.ts.map +1 -1
  114. package/dist/src/create-module.js +8 -9
  115. package/dist/src/create-module.js.map +1 -1
  116. package/dist/src/scopes/factories.d.ts.map +1 -1
  117. package/dist/src/scopes/factories.js +3 -2
  118. package/dist/src/scopes/factories.js.map +1 -1
  119. package/dist/src/scopes/module.js +2 -2
  120. package/dist/src/scopes/module.js.map +1 -1
  121. package/dist/src/scopes/package.js +2 -2
  122. package/dist/src/scopes/package.js.map +1 -1
  123. package/dist/src/scopes/source-file.d.ts.map +1 -1
  124. package/dist/src/scopes/source-file.js +4 -3
  125. package/dist/src/scopes/source-file.js.map +1 -1
  126. package/dist/src/symbols/factories.d.ts.map +1 -1
  127. package/dist/src/symbols/factories.js +67 -16
  128. package/dist/src/symbols/factories.js.map +1 -1
  129. package/dist/src/symbols/go.d.ts.map +1 -1
  130. package/dist/src/symbols/go.js +6 -2
  131. package/dist/src/symbols/go.js.map +1 -1
  132. package/dist/src/symbols/named-type.d.ts.map +1 -1
  133. package/dist/src/symbols/named-type.js +2 -2
  134. package/dist/src/symbols/named-type.js.map +1 -1
  135. package/dist/src/symbols/package.d.ts.map +1 -1
  136. package/dist/src/symbols/package.js +2 -1
  137. package/dist/src/symbols/package.js.map +1 -1
  138. package/dist/tsconfig.tsbuildinfo +1 -1
  139. package/package.json +13 -6
  140. package/src/components/SourceFile.tsx +2 -1
  141. package/src/components/type/declaration.tsx +10 -4
  142. package/src/create-module.ts +11 -8
  143. package/src/scopes/factories.ts +3 -3
  144. package/src/scopes/module.ts +2 -2
  145. package/src/scopes/package.ts +2 -2
  146. package/src/scopes/source-file.ts +3 -1
  147. package/src/symbols/factories.ts +82 -47
  148. package/src/symbols/go.ts +6 -1
  149. package/src/symbols/named-type.ts +3 -1
  150. package/src/symbols/package.ts +2 -2
  151. package/vitest.config.ts +8 -0
@@ -0,0 +1,250 @@
1
+ import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { Block, createSymbolSlot, Declaration, DeclarationContext, effect, For, Indent, Name, onCleanup, Scope, Show, useContext } from "@alloy-js/core";
3
+ import { useGoScope } from "../../scopes/contexts.js";
4
+ import { createFunctionScope } from "../../scopes/factories.js";
5
+ import { GoSourceFileScope } from "../../scopes/source-file.js";
6
+ import { createFunctionSymbol, createParameterSymbol } from "../../symbols/factories.js";
7
+ import { FunctionSymbol } from "../../symbols/function.js";
8
+ import { NamedTypeSymbol } from "../../symbols/named-type.js";
9
+ import { LineComment } from "../doc/comment.js";
10
+ import { FunctionParameters } from "../parameters/parameters.js";
11
+ import { TypeParameters } from "../parameters/typeparameters.js";
12
+
13
+ // properties for creating a function
14
+
15
+ // a Go function
16
+ export function FunctionDeclaration(props) {
17
+ const isFileScope = useGoScope() instanceof GoSourceFileScope;
18
+ if (props.receiver && !isFileScope) {
19
+ throw new Error("Methods can only be declared in file scope.");
20
+ }
21
+ const functionSymbol = createFunctionSymbol(props.name, !!props.receiver, {
22
+ refkeys: props.refkey
23
+ });
24
+
25
+ // scope for function declaration
26
+ const functionScope = createFunctionScope();
27
+
28
+ // note that scope wraps the function declaration so that the params get the correct scope
29
+ return _$createComponent(Declaration, {
30
+ symbol: functionSymbol,
31
+ get children() {
32
+ return _$createComponent(Scope, {
33
+ value: functionScope,
34
+ get children() {
35
+ return [_$createComponent(Show, {
36
+ get when() {
37
+ return Boolean(props.doc);
38
+ },
39
+ get children() {
40
+ return [_$createComponent(LineComment, {
41
+ get children() {
42
+ return props.doc;
43
+ }
44
+ }, {
45
+ fileName: import.meta.url,
46
+ lineNumber: 86,
47
+ columnNumber: 11
48
+ }), _$createIntrinsic("hbr", {}, {
49
+ fileName: import.meta.url,
50
+ lineNumber: 87,
51
+ columnNumber: 11
52
+ })];
53
+ }
54
+ }, {
55
+ fileName: import.meta.url,
56
+ lineNumber: 85,
57
+ columnNumber: 9
58
+ }), "func", " ", _$memo(() => _$memo(() => !!props.receiver)() ? ["(", _$memo(() => props.receiver, false, "props.receiver"), ") "] : null, false, "_$memo(\u2026)(\u2026) ? \u2026"), _$createComponent(Name, {}, {
59
+ fileName: import.meta.url,
60
+ lineNumber: 93,
61
+ columnNumber: 9
62
+ }), _$createComponent(TypeParameters, {
63
+ get parameters() {
64
+ return props.typeParameters;
65
+ }
66
+ }, {
67
+ fileName: import.meta.url,
68
+ lineNumber: 94,
69
+ columnNumber: 9
70
+ }), _$createComponent(FunctionParameters, {
71
+ get parameters() {
72
+ return props.parameters;
73
+ }
74
+ }, {
75
+ fileName: import.meta.url,
76
+ lineNumber: 95,
77
+ columnNumber: 9
78
+ }), " ", _$memo(() => _$memo(() => !!props.returns)() ? _$memo(() => !!(Array.isArray(props.returns) && props.returns.length > 1))() ? [_$createIntrinsic("group", {
79
+ get children() {
80
+ return ["(", _$createComponent(Indent, {
81
+ softline: true,
82
+ get children() {
83
+ return _$createComponent(For, {
84
+ get each() {
85
+ return props.returns;
86
+ },
87
+ get joiner() {
88
+ return [",", _$createIntrinsic("ifBreak", {
89
+ flatContents: " ",
90
+ get children() {
91
+ return _$createIntrinsic("sbr", {}, {
92
+ fileName: import.meta.url,
93
+ lineNumber: 108,
94
+ columnNumber: 27
95
+ });
96
+ }
97
+ }, {
98
+ fileName: import.meta.url,
99
+ lineNumber: 107,
100
+ columnNumber: 25
101
+ })];
102
+ },
103
+ get ender() {
104
+ return _$createIntrinsic("ifBreak", {
105
+ children: ","
106
+ }, {
107
+ fileName: import.meta.url,
108
+ lineNumber: 112,
109
+ columnNumber: 28
110
+ });
111
+ },
112
+ children: ret => ret
113
+ }, {
114
+ fileName: import.meta.url,
115
+ lineNumber: 102,
116
+ columnNumber: 19
117
+ });
118
+ }
119
+ }, {
120
+ fileName: import.meta.url,
121
+ lineNumber: 101,
122
+ columnNumber: 17
123
+ }), _$createIntrinsic("sbr", {}, {
124
+ fileName: import.meta.url,
125
+ lineNumber: 117,
126
+ columnNumber: 17
127
+ }), ")"];
128
+ }
129
+ }, {
130
+ fileName: import.meta.url,
131
+ lineNumber: 99,
132
+ columnNumber: 15
133
+ }), " "] : [_$memo(() => props.returns, false, "props.returns"), " "] : null, false, "_$memo(\u2026)(\u2026) ? \u2026"), _$memo(() => _$memo(() => !!!props.children)() ? "{}" : _$memo(() => !!props.singleLine)() ? ["{", " ", _$memo(() => props.children, false, "props.children"), " ", "}"] : _$createComponent(Block, {
134
+ get children() {
135
+ return props.children;
136
+ }
137
+ }, {
138
+ fileName: import.meta.url,
139
+ lineNumber: 129,
140
+ columnNumber: 11
141
+ }), false, "_$memo(\u2026)(\u2026) ? \u2026")];
142
+ }
143
+ }, {
144
+ fileName: import.meta.url,
145
+ lineNumber: 84,
146
+ columnNumber: 7
147
+ });
148
+ }
149
+ }, {
150
+ fileName: import.meta.url,
151
+ lineNumber: 83,
152
+ columnNumber: 5
153
+ });
154
+ }
155
+ export function FunctionReceiver(props) {
156
+ const receiverSymbol = createParameterSymbol(props.name, {
157
+ refkeys: props.refkey
158
+ });
159
+ const functionSymbol = useContext(DeclarationContext);
160
+ if (!(functionSymbol instanceof FunctionSymbol)) {
161
+ throw new Error("FuncReceiver must be used inside a function.");
162
+ }
163
+ const FunctionTypeSlot = createSymbolSlot();
164
+
165
+ // Add the function symbol to the receiver type's members
166
+ effect(() => {
167
+ const typeSymbol = FunctionTypeSlot.firstSymbol.value;
168
+ if (!typeSymbol) {
169
+ return;
170
+ }
171
+ if (typeSymbol.enclosingPackage !== receiverSymbol.enclosingPackage) {
172
+ throw new Error(`Receiver symbol ${receiverSymbol.name} must be in the same package as the type ${typeSymbol.name}.`);
173
+ }
174
+ if (!(typeSymbol instanceof NamedTypeSymbol)) {
175
+ throw new Error(`Receiver type must be a named type, got ${typeSymbol.constructor.name}.`);
176
+ }
177
+ functionSymbol.receiverSymbol = typeSymbol;
178
+ typeSymbol.members.add(functionSymbol);
179
+ onCleanup(() => {
180
+ functionSymbol.receiverSymbol = undefined;
181
+ typeSymbol.members.delete(functionSymbol);
182
+ });
183
+ });
184
+ return _$createComponent(Declaration, {
185
+ symbol: receiverSymbol,
186
+ get children() {
187
+ return [_$createComponent(Name, {}, {
188
+ fileName: import.meta.url,
189
+ lineNumber: 185,
190
+ columnNumber: 7
191
+ }), " ", _$createComponent(FunctionTypeSlot, {
192
+ get children() {
193
+ return props.type;
194
+ }
195
+ }, {
196
+ fileName: import.meta.url,
197
+ lineNumber: 185,
198
+ columnNumber: 16
199
+ }), _$createComponent(Show, {
200
+ get when() {
201
+ return !!props.typeParameters;
202
+ },
203
+ get children() {
204
+ return _$createComponent(TypeParameters, {
205
+ get parameters() {
206
+ return props.typeParameters;
207
+ }
208
+ }, {
209
+ fileName: import.meta.url,
210
+ lineNumber: 187,
211
+ columnNumber: 9
212
+ });
213
+ }
214
+ }, {
215
+ fileName: import.meta.url,
216
+ lineNumber: 186,
217
+ columnNumber: 7
218
+ }), _$createComponent(Show, {
219
+ get when() {
220
+ return !props.typeParameters && !!functionSymbol.receiverSymbol;
221
+ },
222
+ get children() {
223
+ return _$createComponent(TypeParameters, {
224
+ get parameters() {
225
+ return [...functionSymbol.receiverSymbol.typeParameters].map(s => {
226
+ return {
227
+ name: s.name,
228
+ constraint: s.constraint
229
+ };
230
+ });
231
+ }
232
+ }, {
233
+ fileName: import.meta.url,
234
+ lineNumber: 190,
235
+ columnNumber: 9
236
+ });
237
+ }
238
+ }, {
239
+ fileName: import.meta.url,
240
+ lineNumber: 189,
241
+ columnNumber: 7
242
+ })];
243
+ }
244
+ }, {
245
+ fileName: import.meta.url,
246
+ lineNumber: 184,
247
+ columnNumber: 5
248
+ });
249
+ }
250
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Block","createSymbolSlot","Declaration","DeclarationContext","effect","For","Indent","Name","onCleanup","Scope","Show","useContext","useGoScope","createFunctionScope","GoSourceFileScope","createFunctionSymbol","createParameterSymbol","FunctionSymbol","NamedTypeSymbol","LineComment","FunctionParameters","TypeParameters","FunctionDeclaration","props","isFileScope","receiver","Error","functionSymbol","name","refkeys","refkey","functionScope","_$createComponent","symbol","children","value","when","Boolean","doc","fileName","import","meta","url","lineNumber","columnNumber","_$createIntrinsic","_$memo","parameters","typeParameters","returns","Array","isArray","length","softline","each","joiner","flatContents","ender","ret","singleLine","FunctionReceiver","receiverSymbol","FunctionTypeSlot","typeSymbol","firstSymbol","enclosingPackage","constructor","members","add","undefined","delete","type","map","s","constraint"],"sources":["../../../../../src/components/function/function.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}