@alloy-js/go 0.3.0-dev.2 → 0.3.0

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 (210) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/dev/src/builtins/fmt/fmt.js +148 -0
  3. package/dist/dev/src/builtins/fmt/fmt.js.map +1 -0
  4. package/dist/dev/src/builtins/index.js +11 -0
  5. package/dist/dev/src/builtins/index.js.map +1 -0
  6. package/dist/dev/src/builtins/io/io.js +650 -0
  7. package/dist/dev/src/builtins/io/io.js.map +1 -0
  8. package/dist/dev/src/builtins/net/net.js +1212 -0
  9. package/dist/dev/src/builtins/net/net.js.map +1 -0
  10. package/dist/dev/src/builtins/time/time.js +464 -0
  11. package/dist/dev/src/builtins/time/time.js.map +1 -0
  12. package/dist/dev/src/components/ImportStatement.js +114 -0
  13. package/dist/dev/src/components/ImportStatement.js.map +1 -0
  14. package/dist/dev/src/components/ModuleDirectory.js +28 -0
  15. package/dist/dev/src/components/ModuleDirectory.js.map +1 -0
  16. package/dist/dev/src/components/Name.js +12 -0
  17. package/dist/dev/src/components/Name.js.map +1 -0
  18. package/dist/dev/src/components/Reference.js +15 -0
  19. package/dist/dev/src/components/Reference.js.map +1 -0
  20. package/dist/dev/src/components/SourceDirectory.js +38 -0
  21. package/dist/dev/src/components/SourceDirectory.js.map +1 -0
  22. package/dist/dev/src/components/SourceFile.js +119 -0
  23. package/dist/dev/src/components/SourceFile.js.map +1 -0
  24. package/dist/dev/src/components/doc/comment.js +46 -0
  25. package/dist/dev/src/components/doc/comment.js.map +1 -0
  26. package/dist/dev/src/components/doc/comment.test.js +371 -0
  27. package/dist/dev/src/components/doc/comment.test.js.map +1 -0
  28. package/dist/dev/src/components/function/function.js +250 -0
  29. package/dist/dev/src/components/function/function.js.map +1 -0
  30. package/dist/dev/src/components/function/function.test.js +630 -0
  31. package/dist/dev/src/components/function/function.test.js.map +1 -0
  32. package/dist/dev/src/components/index.js +16 -0
  33. package/dist/dev/src/components/index.js.map +1 -0
  34. package/dist/dev/src/components/interface/declaration.js +245 -0
  35. package/dist/dev/src/components/interface/declaration.js.map +1 -0
  36. package/dist/dev/src/components/interface/interface.test.js +853 -0
  37. package/dist/dev/src/components/interface/interface.test.js.map +1 -0
  38. package/dist/dev/src/components/package.test.js +137 -0
  39. package/dist/dev/src/components/package.test.js.map +1 -0
  40. package/dist/dev/src/components/parameters/parameters.js +102 -0
  41. package/dist/dev/src/components/parameters/parameters.js.map +1 -0
  42. package/dist/dev/src/components/parameters/typeparameters.js +93 -0
  43. package/dist/dev/src/components/parameters/typeparameters.js.map +1 -0
  44. package/dist/dev/src/components/pointer/pointer.js +8 -0
  45. package/dist/dev/src/components/pointer/pointer.js.map +1 -0
  46. package/dist/dev/src/components/stc/index.js +27 -0
  47. package/dist/dev/src/components/stc/index.js.map +1 -0
  48. package/dist/dev/src/components/struct/declaration.js +213 -0
  49. package/dist/dev/src/components/struct/declaration.js.map +1 -0
  50. package/dist/dev/src/components/struct/struct.test.js +1261 -0
  51. package/dist/dev/src/components/struct/struct.test.js.map +1 -0
  52. package/dist/dev/src/components/type/declaration.js +112 -0
  53. package/dist/dev/src/components/type/declaration.js.map +1 -0
  54. package/dist/dev/src/components/var/declaration.js +136 -0
  55. package/dist/dev/src/components/var/declaration.js.map +1 -0
  56. package/dist/dev/src/components/var/var-declaration.test.js +564 -0
  57. package/dist/dev/src/components/var/var-declaration.test.js.map +1 -0
  58. package/dist/dev/src/context/package.js +6 -0
  59. package/dist/dev/src/context/package.js.map +1 -0
  60. package/dist/dev/src/create-module.js +157 -0
  61. package/dist/dev/src/create-module.js.map +1 -0
  62. package/dist/dev/src/create-module.test.js +175 -0
  63. package/dist/dev/src/create-module.test.js.map +1 -0
  64. package/dist/dev/src/index.js +7 -0
  65. package/dist/dev/src/index.js.map +1 -0
  66. package/dist/dev/src/name-policy.js +27 -0
  67. package/dist/dev/src/name-policy.js.map +1 -0
  68. package/dist/dev/src/scopes/contexts.js +34 -0
  69. package/dist/dev/src/scopes/contexts.js.map +1 -0
  70. package/dist/dev/src/scopes/factories.js +17 -0
  71. package/dist/dev/src/scopes/factories.js.map +1 -0
  72. package/dist/dev/src/scopes/function.js +14 -0
  73. package/dist/dev/src/scopes/function.js.map +1 -0
  74. package/dist/dev/src/scopes/go.js +12 -0
  75. package/dist/dev/src/scopes/go.js.map +1 -0
  76. package/dist/dev/src/scopes/index.js +10 -0
  77. package/dist/dev/src/scopes/index.js.map +1 -0
  78. package/dist/dev/src/scopes/lexical.js +11 -0
  79. package/dist/dev/src/scopes/lexical.js.map +1 -0
  80. package/dist/dev/src/scopes/module.js +31 -0
  81. package/dist/dev/src/scopes/module.js.map +1 -0
  82. package/dist/dev/src/scopes/named-type.js +33 -0
  83. package/dist/dev/src/scopes/named-type.js.map +1 -0
  84. package/dist/dev/src/scopes/package.js +39 -0
  85. package/dist/dev/src/scopes/package.js.map +1 -0
  86. package/dist/dev/src/scopes/source-file.js +43 -0
  87. package/dist/dev/src/scopes/source-file.js.map +1 -0
  88. package/dist/dev/src/symbols/factories.js +165 -0
  89. package/dist/dev/src/symbols/factories.js.map +1 -0
  90. package/dist/dev/src/symbols/function.js +24 -0
  91. package/dist/dev/src/symbols/function.js.map +1 -0
  92. package/dist/dev/src/symbols/go.js +60 -0
  93. package/dist/dev/src/symbols/go.js.map +1 -0
  94. package/dist/dev/src/symbols/index.js +7 -0
  95. package/dist/dev/src/symbols/index.js.map +1 -0
  96. package/dist/dev/src/symbols/named-type.js +42 -0
  97. package/dist/dev/src/symbols/named-type.js.map +1 -0
  98. package/dist/dev/src/symbols/package.js +39 -0
  99. package/dist/dev/src/symbols/package.js.map +1 -0
  100. package/dist/dev/src/symbols/reference.js +76 -0
  101. package/dist/dev/src/symbols/reference.js.map +1 -0
  102. package/dist/dev/src/symbols/type-parameter.js +16 -0
  103. package/dist/dev/src/symbols/type-parameter.js.map +1 -0
  104. package/dist/dev/test/utils.js +92 -0
  105. package/dist/dev/test/utils.js.map +1 -0
  106. package/dist/dev/test/vitest.setup.js +2 -0
  107. package/dist/dev/test/vitest.setup.js.map +1 -0
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/docs/api/components/FunctionDeclaration.md +53 -0
  110. package/docs/api/components/FunctionParameter.md +40 -0
  111. package/docs/api/components/FunctionParameters.md +29 -0
  112. package/docs/api/components/FunctionReceiver.md +38 -0
  113. package/docs/api/components/ImportStatements.md +25 -0
  114. package/docs/api/components/InterfaceDeclaration.md +54 -0
  115. package/docs/api/components/InterfaceEmbed.md +29 -0
  116. package/docs/api/components/InterfaceFunction.md +41 -0
  117. package/docs/api/components/InterfaceTypeDeclaration.md +56 -0
  118. package/docs/api/components/LineComment.md +29 -0
  119. package/docs/api/components/ModuleDirectory.md +29 -0
  120. package/docs/api/components/Name.md +19 -0
  121. package/docs/api/components/Pointer.md +29 -0
  122. package/docs/api/components/Reference.md +25 -0
  123. package/docs/api/components/SingleImportStatement.md +35 -0
  124. package/docs/api/components/SourceDirectory.md +27 -0
  125. package/docs/api/components/SourceFile.md +44 -0
  126. package/docs/api/components/StructDeclaration.md +51 -0
  127. package/docs/api/components/StructEmbed.md +29 -0
  128. package/docs/api/components/StructMember.md +41 -0
  129. package/docs/api/components/StructTypeDeclaration.md +56 -0
  130. package/docs/api/components/TypeConstraint.md +28 -0
  131. package/docs/api/components/TypeDeclaration.md +47 -0
  132. package/docs/api/components/TypeDeclarationGroup.md +27 -0
  133. package/docs/api/components/TypeParameter.md +37 -0
  134. package/docs/api/components/TypeParameters.md +25 -0
  135. package/docs/api/components/VariableDeclaration.md +44 -0
  136. package/docs/api/components/VariableDeclarationGroup.md +28 -0
  137. package/docs/api/components/index.md +30 -0
  138. package/docs/api/contexts/TypeDeclarationGroup-context.md +17 -0
  139. package/docs/api/contexts/VariableDeclarationGroup-context.md +18 -0
  140. package/docs/api/contexts/index.md +4 -0
  141. package/docs/api/functions/createAnonymousTypeSymbol.md +25 -0
  142. package/docs/api/functions/createFunctionScope.md +26 -0
  143. package/docs/api/functions/createFunctionSymbol.md +35 -0
  144. package/docs/api/functions/createGoModuleScope.md +18 -0
  145. package/docs/api/functions/createGoNamePolicy.md +17 -0
  146. package/docs/api/functions/createGoPackageScope.md +18 -0
  147. package/docs/api/functions/createInterfaceMemberSymbol.md +25 -0
  148. package/docs/api/functions/createModule.md +20 -0
  149. package/docs/api/functions/createNamedTypeScope.md +27 -0
  150. package/docs/api/functions/createNestedStructSymbol.md +26 -0
  151. package/docs/api/functions/createPackageSymbol.md +19 -0
  152. package/docs/api/functions/createParameterSymbol.md +36 -0
  153. package/docs/api/functions/createPropertySymbol.md +34 -0
  154. package/docs/api/functions/createStructMemberSymbol.md +25 -0
  155. package/docs/api/functions/createTypeParameterSymbol.md +25 -0
  156. package/docs/api/functions/createTypeSymbol.md +26 -0
  157. package/docs/api/functions/createVariableSymbol.md +34 -0
  158. package/docs/api/functions/index.md +29 -0
  159. package/docs/api/functions/ref.md +18 -0
  160. package/docs/api/functions/useEnclosingPackageScope.md +17 -0
  161. package/docs/api/functions/useFuncScope.md +17 -0
  162. package/docs/api/functions/useGoNamePolicy.md +17 -0
  163. package/docs/api/functions/useGoScope.md +17 -0
  164. package/docs/api/functions/useLexicalScope.md +17 -0
  165. package/docs/api/functions/useModule.md +17 -0
  166. package/docs/api/functions/useNamedTypeScope.md +17 -0
  167. package/docs/api/functions/usePackage.md +17 -0
  168. package/docs/api/functions/useSourceFileScope.md +17 -0
  169. package/docs/api/index.md +7 -0
  170. package/docs/api/types/CreateTypeParameterSymbolOptions.md +9 -0
  171. package/docs/api/types/Descriptor.md +5 -0
  172. package/docs/api/types/EmbedDescriptor.md +9 -0
  173. package/docs/api/types/FieldDescriptor.md +9 -0
  174. package/docs/api/types/FunctionDescriptor.md +9 -0
  175. package/docs/api/types/FunctionSymbol.md +13 -0
  176. package/docs/api/types/GoElements.md +5 -0
  177. package/docs/api/types/GoFunctionScope.md +12 -0
  178. package/docs/api/types/GoLexicalScope.md +11 -0
  179. package/docs/api/types/GoModuleScope.md +10 -0
  180. package/docs/api/types/GoNamedTypeScope.md +16 -0
  181. package/docs/api/types/GoPackageScope.md +10 -0
  182. package/docs/api/types/GoScope.md +10 -0
  183. package/docs/api/types/GoSourceFileScope.md +13 -0
  184. package/docs/api/types/GoSymbol.md +17 -0
  185. package/docs/api/types/GoSymbolKinds.md +5 -0
  186. package/docs/api/types/GoSymbolOptions.md +10 -0
  187. package/docs/api/types/ImportRecords.md +5 -0
  188. package/docs/api/types/InterfaceDescriptor.md +9 -0
  189. package/docs/api/types/LibraryFrom.md +5 -0
  190. package/docs/api/types/MemberDescriptor.md +8 -0
  191. package/docs/api/types/MethodDescriptor.md +9 -0
  192. package/docs/api/types/NamedTypeDescriptor.md +8 -0
  193. package/docs/api/types/NamedTypeSymbol.md +17 -0
  194. package/docs/api/types/NamedTypeSymbolKind.md +5 -0
  195. package/docs/api/types/NamedTypeSymbolOptions.md +9 -0
  196. package/docs/api/types/NamedTypeTypeKind.md +5 -0
  197. package/docs/api/types/PackageDescriptor.md +12 -0
  198. package/docs/api/types/PackageSymbol.md +15 -0
  199. package/docs/api/types/PackageSymbolOptions.md +10 -0
  200. package/docs/api/types/ResolveDescriptor.md +7 -0
  201. package/docs/api/types/SourceFileHeaderProps.md +9 -0
  202. package/docs/api/types/StrictDescriptor.md +5 -0
  203. package/docs/api/types/StructDescriptor.md +9 -0
  204. package/docs/api/types/TypeDescriptor.md +9 -0
  205. package/docs/api/types/VariableDescriptor.md +9 -0
  206. package/docs/api/types/index.md +38 -0
  207. package/docs/api/variables/index.md +3 -0
  208. package/docs/api/variables/std.md +2463 -0
  209. package/package.json +10 -7
  210. package/vitest.config.ts +8 -0
@@ -0,0 +1,43 @@
1
+ import { createSymbol, shallowReactive, useScope } from "@alloy-js/core";
2
+ import { GoSymbol } from "../symbols/go.js";
3
+ import { GoLexicalScope } from "./lexical.js";
4
+ export class GoSourceFileScope extends GoLexicalScope {
5
+ #imports = shallowReactive(new Map());
6
+ constructor(name, parent, options) {
7
+ super(name, parent, options);
8
+ }
9
+ get imports() {
10
+ return this.#imports;
11
+ }
12
+ get parent() {
13
+ return super.parent;
14
+ }
15
+ set parent(v) {
16
+ super.parent = v;
17
+ }
18
+ addImport(import_) {
19
+ if (this.#imports.has(import_)) {
20
+ return this.#imports.get(import_);
21
+ }
22
+ const localSymbol = createSymbol(GoSymbol, import_.name, this.values, {
23
+ aliasTarget: import_,
24
+ binder: this.binder
25
+ });
26
+ this.#imports.set(import_, localSymbol);
27
+ return localSymbol;
28
+ }
29
+ get enclosingPackage() {
30
+ return this.parent?.ownerSymbol;
31
+ }
32
+ }
33
+ export function useSourceFileScope() {
34
+ let scope = useScope();
35
+ while (scope) {
36
+ if (scope instanceof GoSourceFileScope) {
37
+ return scope;
38
+ }
39
+ scope = scope.parent;
40
+ }
41
+ return undefined;
42
+ }
43
+ //# sourceMappingURL=source-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSymbol","shallowReactive","useScope","GoSymbol","GoLexicalScope","GoSourceFileScope","imports","Map","constructor","name","parent","options","v","addImport","import_","has","get","localSymbol","values","aliasTarget","binder","set","enclosingPackage","ownerSymbol","useSourceFileScope","scope","undefined"],"sources":["../../../../src/scopes/source-file.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,YAAY,EACZC,eAAe,EACfC,QAAQ,QACH,gBAAgB;AACvB,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,SAASC,cAAc,QAAQ,cAAc;AAK7C,OAAO,MAAMC,iBAAiB,SAASD,cAAc,CAAC;EACpD,CAACE,OAAO,GAAGL,eAAe,CAAgB,IAAIM,GAAG,CAAC,CAAC,CAAC;EAEpDC,WAAWA,CACTC,IAAY,EACZC,MAAuB,EACvBC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EAEA,IAAIL,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC,CAACA,OAAO;EACtB;EAEA,IAAII,MAAMA,CAAA,EAAG;IACX,OAAO,KAAK,CAACA,MAAM;EACrB;EAEA,IAAIA,MAAMA,CAACE,CAAiB,EAAE;IAC5B,KAAK,CAACF,MAAM,GAAGE,CAAC;EAClB;EAEAC,SAASA,CAACC,OAAsB,EAAE;IAChC,IAAI,IAAI,CAAC,CAACR,OAAO,CAACS,GAAG,CAACD,OAAO,CAAC,EAAE;MAC9B,OAAO,IAAI,CAAC,CAACR,OAAO,CAACU,GAAG,CAACF,OAAO,CAAC;IACnC;IAEA,MAAMG,WAAW,GAAGjB,YAAY,CAACG,QAAQ,EAAEW,OAAO,CAACL,IAAI,EAAE,IAAI,CAACS,MAAM,EAAE;MACpEC,WAAW,EAAEL,OAAO;MACpBM,MAAM,EAAE,IAAI,CAACA;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,CAACd,OAAO,CAACe,GAAG,CAACP,OAAO,EAAEG,WAAW,CAAC;IAEvC,OAAOA,WAAW;EACpB;EAEA,IAAIK,gBAAgBA,CAAA,EAA8B;IAChD,OAAO,IAAI,CAACZ,MAAM,EAAEa,WAAW;EACjC;AACF;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,IAAIC,KAA8B,GAAGvB,QAAQ,CAAC,CAAC;EAC/C,OAAOuB,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYpB,iBAAiB,EAAE;MACtC,OAAOoB,KAAK;IACd;IACAA,KAAK,GAAGA,KAAK,CAACf,MAAM;EACtB;EAEA,OAAOgB,SAAS;AAClB","ignoreList":[]}
@@ -0,0 +1,165 @@
1
+ import { createSymbol } from "@alloy-js/core";
2
+ import { join } from "pathe";
3
+ import { useGoNamePolicy } from "../name-policy.js";
4
+ import { useGoScope, useNamedTypeScope } from "../scopes/contexts.js";
5
+ import { GoFunctionScope } from "../scopes/function.js";
6
+ import { GoLexicalScope } from "../scopes/lexical.js";
7
+ import { useModule } from "../scopes/module.js";
8
+ import { GoNamedTypeScope } from "../scopes/named-type.js";
9
+ import { useEnclosingPackageScope } from "../scopes/package.js";
10
+ import { FunctionSymbol } from "./function.js";
11
+ import { GoSymbol } from "./go.js";
12
+ import { NamedTypeSymbol } from "./named-type.js";
13
+ import { PackageSymbol } from "./package.js";
14
+
15
+ /**
16
+ * Create a symbol for a parameter in the current func scope.
17
+ */
18
+ export function createParameterSymbol(originalName, options = {}) {
19
+ const scope = useGoScope();
20
+ if (!(scope instanceof GoFunctionScope)) {
21
+ throw new Error(`Can't create parameter symbol outside of a func scope.`);
22
+ }
23
+ const binder = options.binder ?? scope.binder;
24
+ return createSymbol(GoSymbol, originalName, scope.parameters, {
25
+ ...withNamePolicy(options, "parameter"),
26
+ binder
27
+ });
28
+ }
29
+ export function createTypeParameterSymbol(originalName, options = {}) {
30
+ const scope = options.scope ?? useGoScope();
31
+ if (!(scope instanceof GoFunctionScope) && !(scope instanceof GoNamedTypeScope)) {
32
+ throw new Error("Can't create a type parameter symbol outside of a func or named type scope.");
33
+ }
34
+ const binder = options.binder ?? scope.binder;
35
+ return createSymbol(GoSymbol, originalName, scope.typeParameters, {
36
+ ...withNamePolicy(options, "type-parameter"),
37
+ binder
38
+ });
39
+ }
40
+ export function createStructMemberSymbol(originalName, options = {}) {
41
+ const scope = useNamedTypeScope();
42
+ if (scope.ownerSymbol.typeKind !== "struct" && scope.ownerSymbol.typeKind !== "struct-member") {
43
+ throw new Error(`Can't define a field outside of a struct, kind ${scope.ownerSymbol.typeKind}.`);
44
+ }
45
+ const binder = options.binder ?? scope.ownerSymbol.binder;
46
+ return createSymbol(NamedTypeSymbol, originalName, scope.members, "struct-member", {
47
+ ...withNamePolicy(options, "struct-member"),
48
+ binder
49
+ });
50
+ }
51
+ export function createInterfaceMemberSymbol(originalName, options = {}) {
52
+ const scope = useNamedTypeScope();
53
+ if (scope.ownerSymbol.typeKind !== "interface") {
54
+ throw new Error(`Can't define a field outside of an interface, kind ${scope.ownerSymbol.typeKind}.`);
55
+ }
56
+ const binder = options.binder ?? scope.ownerSymbol.binder;
57
+ return createSymbol(NamedTypeSymbol, originalName, scope.members, "interface-member", {
58
+ ...withNamePolicy(options, "interface-member"),
59
+ binder
60
+ });
61
+ }
62
+ export function createPackageSymbol(name, path) {
63
+ const scope = useEnclosingPackageScope();
64
+ const pkgSymbol = scope?.ownerSymbol;
65
+ if (!pkgSymbol) {
66
+ const mod = useModule();
67
+ const modName = mod.name;
68
+ const builtin = mod.builtin;
69
+ const pkgPath = path ? join(modName, path) : modName;
70
+ return createSymbol(PackageSymbol, name, undefined, {
71
+ path: pkgPath,
72
+ builtin,
73
+ binder: mod.binder
74
+ });
75
+ }
76
+ if (pkgSymbol.members.symbolNames.has(name)) {
77
+ return pkgSymbol.members.symbolNames.get(name);
78
+ }
79
+ return createSymbol(PackageSymbol, name, pkgSymbol, {
80
+ path,
81
+ binder: pkgSymbol.binder
82
+ });
83
+ }
84
+ export function createFunctionSymbol(originalName, isMethod, options = {}) {
85
+ const scope = useGoScope();
86
+ if (!isMethod && scope instanceof GoLexicalScope) {
87
+ const binder = options.binder ?? scope.binder;
88
+ return createSymbol(FunctionSymbol, originalName, scope.types, {
89
+ ...withNamePolicy(options, "function"),
90
+ binder
91
+ });
92
+ }
93
+ const binder = options.binder ?? scope.binder;
94
+ return createSymbol(FunctionSymbol, originalName, undefined, {
95
+ ...withNamePolicy(options, "function"),
96
+ binder
97
+ });
98
+ }
99
+ export function createPropertySymbol(originalName, options) {
100
+ const scope = useNamedTypeScope();
101
+ const binder = options.binder ?? scope.binder;
102
+ return createSymbol(GoSymbol, originalName, scope.members, {
103
+ ...withNamePolicy(options, "struct-member"),
104
+ binder
105
+ });
106
+ }
107
+ export function createVariableSymbol(originalName, options = {}) {
108
+ const scope = useGoScope();
109
+ if (!(scope instanceof GoLexicalScope)) {
110
+ throw new Error(`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
111
+ }
112
+ const binder = options.binder ?? scope.binder;
113
+ return createSymbol(GoSymbol, originalName, scope.values, {
114
+ ...withNamePolicy(options, "variable"),
115
+ binder
116
+ });
117
+ }
118
+ export function createTypeSymbol(originalName, kind, options = {}) {
119
+ const scope = useGoScope();
120
+ if (scope instanceof GoLexicalScope) {
121
+ const binder = options.binder ?? scope.binder;
122
+ return createSymbol(NamedTypeSymbol, originalName, scope.types, kind, {
123
+ ...withNamePolicy(options, "type"),
124
+ binder
125
+ });
126
+ }
127
+ throw new Error(`Can't create type symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
128
+ }
129
+ export function createNestedStructSymbol(originalName, kind, options = {}) {
130
+ const scope = useGoScope();
131
+ if (scope instanceof GoNamedTypeScope) {
132
+ const binder = options.binder ?? scope.binder;
133
+ return createSymbol(NamedTypeSymbol, originalName, scope.ownerSymbol.members, kind, {
134
+ ...withNamePolicy(options, "struct-member"),
135
+ binder
136
+ });
137
+ }
138
+ throw new Error(`Can't create named anonymous type symbol outside of a NamedType scope, got a ${scope.constructor.name}.`);
139
+ }
140
+ let anonymousTypeID = 0;
141
+ export function createAnonymousTypeSymbol(kind, options = {}) {
142
+ const name = "anonymous_" + anonymousTypeID++ + "_this_should_not_appear_in_output";
143
+ const scope = useGoScope();
144
+ if (scope instanceof GoLexicalScope) {
145
+ const binder = options.binder ?? scope.binder;
146
+ return createSymbol(NamedTypeSymbol, name, scope.types, kind, {
147
+ ...options,
148
+ binder
149
+ });
150
+ } else if (scope instanceof GoNamedTypeScope) {
151
+ const binder = options.binder ?? scope.binder;
152
+ return createSymbol(NamedTypeSymbol, name, scope.ownerSymbol.members, kind, {
153
+ ...options,
154
+ binder
155
+ });
156
+ }
157
+ throw new Error(`Can't create anonymous type symbol outside of a lexical or NamedType scope, got a ${scope.constructor.name}.`);
158
+ }
159
+ function withNamePolicy(options, elementType) {
160
+ return {
161
+ ...options,
162
+ namePolicy: options.namePolicy ?? useGoNamePolicy().for(elementType)
163
+ };
164
+ }
165
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSymbol","join","useGoNamePolicy","useGoScope","useNamedTypeScope","GoFunctionScope","GoLexicalScope","useModule","GoNamedTypeScope","useEnclosingPackageScope","FunctionSymbol","GoSymbol","NamedTypeSymbol","PackageSymbol","createParameterSymbol","originalName","options","scope","Error","binder","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createStructMemberSymbol","ownerSymbol","typeKind","members","createInterfaceMemberSymbol","createPackageSymbol","name","path","pkgSymbol","mod","modName","builtin","pkgPath","undefined","symbolNames","has","get","createFunctionSymbol","isMethod","types","createPropertySymbol","createVariableSymbol","constructor","values","createTypeSymbol","kind","createNestedStructSymbol","anonymousTypeID","createAnonymousTypeSymbol","elementType","namePolicy","for"],"sources":["../../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { track, TrackOpTypes, trigger, TriggerOpTypes } from "@alloy-js/core";
2
+ import { GoSymbol } from "./go.js";
3
+ /**
4
+ * A symbol for a function in Go, including receivers.
5
+ */
6
+ export class FunctionSymbol extends GoSymbol {
7
+ symbolKind = "function";
8
+ constructor(name, spaces, options = {}) {
9
+ super(name, spaces, options);
10
+ }
11
+ #receiverSymbol = undefined;
12
+ get receiverSymbol() {
13
+ track(this, TrackOpTypes.GET, "receiverSymbol");
14
+ return this.#receiverSymbol;
15
+ }
16
+ set receiverSymbol(value) {
17
+ if (this.#receiverSymbol === value) {
18
+ return;
19
+ }
20
+ trigger(this, TriggerOpTypes.SET, "receiverSymbol", value, this.#receiverSymbol);
21
+ this.#receiverSymbol = value;
22
+ }
23
+ }
24
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["track","TrackOpTypes","trigger","TriggerOpTypes","GoSymbol","FunctionSymbol","symbolKind","constructor","name","spaces","options","receiverSymbol","undefined","GET","value","SET"],"sources":["../../../../src/symbols/function.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,QACT,gBAAgB;AACvB,SAASC,QAAQ,QAAyB,SAAS;AAGnD;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAASD,QAAQ,CAAC;EAC3BE,UAAU,GAAG,UAAU;EAEvCC,WAAWA,CACTC,IAAsB,EACtBC,MAA+B,EAC/BC,OAAwB,GAAG,CAAC,CAAC,EAC7B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EAEA,CAACC,cAAc,GAAqBC,SAAS;EAE7C,IAAID,cAAcA,CAAA,EAAgC;IAChDX,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACY,GAAG,EAAE,gBAAgB,CAAC;IAC/C,OAAO,IAAI,CAAC,CAACF,cAAc;EAC7B;EAEA,IAAIA,cAAcA,CAACG,KAAkC,EAAE;IACrD,IAAI,IAAI,CAAC,CAACH,cAAc,KAAKG,KAAK,EAAE;MAClC;IACF;IACAZ,OAAO,CACL,IAAI,EACJC,cAAc,CAACY,GAAG,EAClB,gBAAgB,EAChBD,KAAK,EACL,IAAI,CAAC,CAACH,cACR,CAAC;IACD,IAAI,CAAC,CAACA,cAAc,GAAGG,KAAK;EAC9B;AACF","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ import { OutputDeclarationSpace, OutputMemberSpace, OutputSymbol, createSymbol } from "@alloy-js/core";
2
+
3
+ /**
4
+ * Options for creating a Go symbol.
5
+ */
6
+
7
+ /**
8
+ * This is the base type for all symbols in Go.
9
+ *
10
+ * Many subtypes of this symbol exist for specific purposes. However, this symbol
11
+ * may be used in cases where a more specific symbol is not required.
12
+ */
13
+ export class GoSymbol extends OutputSymbol {
14
+ constructor(name, spaces, options = {}) {
15
+ super(name, spaces, options);
16
+ }
17
+ get enclosingPackage() {
18
+ if (this.spaces.length === 0) {
19
+ return undefined;
20
+ }
21
+
22
+ // todo: probably need to validate that a symbol can't belong to spaces in
23
+ // multiple packages.
24
+ const firstSpace = this.spaces[0];
25
+ if (firstSpace instanceof OutputMemberSpace) {
26
+ // this symbol is a member of something, so get the enclosing package from
27
+ // the symbol.
28
+
29
+ if (firstSpace.symbol.constructor.name === "PackageSymbol") {
30
+ // this is a package symbol, so return the package symbol itself.
31
+ // can't use instanceof here due to circular reference issues.
32
+ return firstSpace.symbol;
33
+ }
34
+ return firstSpace.symbol.enclosingPackage;
35
+ } else if (firstSpace instanceof OutputDeclarationSpace) {
36
+ // this symbol is in a lexical scope, so get the package symbol from the scope.
37
+ return firstSpace.scope.enclosingPackage;
38
+ }
39
+ throw new Error("No place to get package symbol from");
40
+ }
41
+ getGoCopyOptions() {
42
+ return {
43
+ ...this.getCopyOptions()
44
+ };
45
+ }
46
+ initializeGoCopy(copy) {
47
+ this.initializeCopy(copy);
48
+ }
49
+ copy() {
50
+ const options = this.getGoCopyOptions();
51
+ const binder = this.binder;
52
+ const copy = createSymbol(GoSymbol, this.name, undefined, {
53
+ ...options,
54
+ binder
55
+ });
56
+ this.initializeGoCopy(copy);
57
+ return copy;
58
+ }
59
+ }
60
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutputDeclarationSpace","OutputMemberSpace","OutputSymbol","createSymbol","GoSymbol","constructor","name","spaces","options","enclosingPackage","length","undefined","firstSpace","symbol","scope","Error","getGoCopyOptions","getCopyOptions","initializeGoCopy","copy","initializeCopy","binder"],"sources":["../../../../src/symbols/go.ts"],"sourcesContent":[null],"mappings":"AAAA,SAEEA,sBAAsB,EACtBC,iBAAiB,EAEjBC,YAAY,EAEZC,YAAY,QACP,gBAAgB;;AAIvB;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,SAASF,YAAY,CAAC;EACzCG,WAAWA,CACTC,IAAsB,EACtBC,MAA+C,EAC/CC,OAAwB,GAAG,CAAC,CAAC,EAC7B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EAEA,IAAIC,gBAAgBA,CAAA,EAA8B;IAChD,IAAI,IAAI,CAACF,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;MAC5B,OAAOC,SAAS;IAClB;;IAEA;IACA;IACA,MAAMC,UAAU,GAAG,IAAI,CAACL,MAAM,CAAC,CAAC,CAAC;IAEjC,IAAIK,UAAU,YAAYX,iBAAiB,EAAE;MAC3C;MACA;;MAEA,IAAIW,UAAU,CAACC,MAAM,CAACR,WAAW,CAACC,IAAI,KAAK,eAAe,EAAE;QAC1D;QACA;QACA,OAAOM,UAAU,CAACC,MAAM;MAC1B;MAEA,OAAQD,UAAU,CAACC,MAAM,CAAcJ,gBAAgB;IACzD,CAAC,MAAM,IAAIG,UAAU,YAAYZ,sBAAsB,EAAE;MACvD;MACA,OAAQY,UAAU,CAACE,KAAK,CAAaL,gBAAgB;IACvD;IACA,MAAM,IAAIM,KAAK,CAAC,qCAAqC,CAAC;EACxD;EAEUC,gBAAgBA,CAAA,EAAoB;IAC5C,OAAO;MACL,GAAG,IAAI,CAACC,cAAc,CAAC;IACzB,CAAC;EACH;EAEUC,gBAAgBA,CAACC,IAAc,EAAE;IACzC,IAAI,CAACC,cAAc,CAACD,IAAI,CAAC;EAC3B;EAEAA,IAAIA,CAAA,EAAiB;IACnB,MAAMX,OAAO,GAAG,IAAI,CAACQ,gBAAgB,CAAC,CAAC;IACvC,MAAMK,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMF,IAAI,GAAGhB,YAAY,CAACC,QAAQ,EAAE,IAAI,CAACE,IAAI,EAAEK,SAAS,EAAE;MACxD,GAAGH,OAAO;MACVa;IACF,CAAC,CAAC;IACF,IAAI,CAACH,gBAAgB,CAACC,IAAI,CAAC;IAC3B,OAAOA,IAAI;EACb;AACF","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export * from "./factories.js";
2
+ export * from "./function.js";
3
+ export * from "./go.js";
4
+ export * from "./named-type.js";
5
+ export * from "./package.js";
6
+ export * from "./reference.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/symbols/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,SAAS;AACvB,cAAc,iBAAiB;AAC/B,cAAc,cAAc;AAC5B,cAAc,gBAAgB","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import { createSymbol, track, TrackOpTypes, trigger, TriggerOpTypes } from "@alloy-js/core";
2
+ import { GoSymbol } from "./go.js";
3
+
4
+ // represents a symbol from a .go file. Struct, interface, etc.
5
+
6
+ /**
7
+ * A symbol for a named type in Go such as a struct, interface, and so forth.
8
+ */
9
+ export class NamedTypeSymbol extends GoSymbol {
10
+ symbolKind = "named-type";
11
+ static memberSpaces = ["members", "typeParameters"];
12
+ constructor(name, spaces, kind, options) {
13
+ super(name, spaces, options);
14
+ this.#typeKind = kind;
15
+ }
16
+ #typeKind;
17
+ get typeKind() {
18
+ track(this, TrackOpTypes.GET, "typeKind");
19
+ return this.#typeKind;
20
+ }
21
+ set typeKind(value) {
22
+ const old = this.#typeKind;
23
+ if (old === value) {
24
+ return;
25
+ }
26
+ this.#typeKind = value;
27
+ trigger(this, TriggerOpTypes.SET, "typeKind", value, old);
28
+ }
29
+ get typeParameters() {
30
+ return this.memberSpaceFor("typeParameters");
31
+ }
32
+ copy() {
33
+ const options = this.getGoCopyOptions();
34
+ const copy = createSymbol(NamedTypeSymbol, this.name, undefined, this.#typeKind, options);
35
+ this.initializeGoCopy(copy);
36
+ return copy;
37
+ }
38
+ get members() {
39
+ return this.memberSpaceFor("members");
40
+ }
41
+ }
42
+ //# sourceMappingURL=named-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSymbol","track","TrackOpTypes","trigger","TriggerOpTypes","GoSymbol","NamedTypeSymbol","symbolKind","memberSpaces","constructor","name","spaces","kind","options","typeKind","GET","value","old","SET","typeParameters","memberSpaceFor","copy","getGoCopyOptions","undefined","initializeGoCopy","members"],"sources":["../../../../src/symbols/named-type.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,YAAY,EAGZC,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,QACT,gBAAgB;AACvB,SAASC,QAAQ,QAAyB,SAAS;;AAEnD;;AAiBA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,SAASD,QAAQ,CAAC;EAC5BE,UAAU,GAAwB,YAAY;EAC9D,OAAuBC,YAAY,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;EAEnEC,WAAWA,CACTC,IAAsB,EACtBC,MAA+C,EAC/CC,IAAuB,EACvBC,OAAgC,EAChC;IACA,KAAK,CAACH,IAAI,EAAEC,MAAM,EAAEE,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,QAAQ,GAAGF,IAAI;EACvB;EAEA,CAACE,QAAQ;EACT,IAAIA,QAAQA,CAAA,EAAG;IACbb,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACa,GAAG,EAAE,UAAU,CAAC;IACzC,OAAO,IAAI,CAAC,CAACD,QAAQ;EACvB;EACA,IAAIA,QAAQA,CAACE,KAAwB,EAAE;IACrC,MAAMC,GAAG,GAAG,IAAI,CAAC,CAACH,QAAQ;IAC1B,IAAIG,GAAG,KAAKD,KAAK,EAAE;MACjB;IACF;IACA,IAAI,CAAC,CAACF,QAAQ,GAAGE,KAAK;IACtBb,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACc,GAAG,EAAE,UAAU,EAAEF,KAAK,EAAEC,GAAG,CAAC;EAC3D;EAEA,IAAIE,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACC,cAAc,CAAC,gBAAgB,CAAC;EAC9C;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMR,OAAO,GAAG,IAAI,CAACS,gBAAgB,CAAC,CAAC;IACvC,MAAMD,IAAI,GAAGrB,YAAY,CACvBM,eAAe,EACf,IAAI,CAACI,IAAI,EACTa,SAAS,EACT,IAAI,CAAC,CAACT,QAAQ,EACdD,OACF,CAAC;IACD,IAAI,CAACW,gBAAgB,CAACH,IAAI,CAAC;IAC3B,OAAOA,IAAI;EACb;EAEA,IAAII,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACL,cAAc,CAAC,SAAS,CAAC;EACvC;AACF","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import { createSymbol } from "@alloy-js/core";
2
+ import { join } from "pathe";
3
+ import { NamedTypeSymbol } from "./named-type.js";
4
+ /**
5
+ * A symbol for a package in Go.
6
+ */
7
+ export class PackageSymbol extends NamedTypeSymbol {
8
+ symbolKind = "package";
9
+ constructor(name, parentPackage, options) {
10
+ const space = parentPackage?.members;
11
+ super(name, space, "package", options);
12
+ this.#path = options?.path ?? name;
13
+ if (parentPackage) {
14
+ this.#fullyQualifiedName = join(parentPackage.fullyQualifiedName, this.#path);
15
+ } else {
16
+ this.#fullyQualifiedName = this.#path;
17
+ }
18
+ this.#builtin = options?.builtin || parentPackage?.builtin || false;
19
+ }
20
+ #path;
21
+ #fullyQualifiedName;
22
+ get fullyQualifiedName() {
23
+ return this.#fullyQualifiedName;
24
+ }
25
+ #builtin;
26
+ get builtin() {
27
+ return this.#builtin;
28
+ }
29
+ copy() {
30
+ const options = this.getGoCopyOptions();
31
+ const copy = createSymbol(PackageSymbol, this.name, undefined, {
32
+ ...options,
33
+ path: this.#path
34
+ });
35
+ this.initializeGoCopy(copy);
36
+ return copy;
37
+ }
38
+ }
39
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSymbol","join","NamedTypeSymbol","PackageSymbol","symbolKind","constructor","name","parentPackage","options","space","members","path","fullyQualifiedName","builtin","copy","getGoCopyOptions","undefined","initializeGoCopy"],"sources":["../../../../src/symbols/package.ts"],"sourcesContent":[null],"mappings":"AAAA,SAA8BA,YAAY,QAAQ,gBAAgB;AAClE,SAASC,IAAI,QAAQ,OAAO;AAC5B,SAASC,eAAe,QAAQ,iBAAiB;AAOjD;AACA;AACA;AACA,OAAO,MAAMC,aAAa,SAASD,eAAe,CAAC;EACjCE,UAAU,GAAG,SAAS;EACtCC,WAAWA,CACTC,IAAY,EACZC,aAA6B,EAC7BC,OAA8B,EAC9B;IACA,MAAMC,KAAK,GAAGF,aAAa,EAAEG,OAAO;IACpC,KAAK,CAACJ,IAAI,EAAEG,KAAK,EAAE,SAAS,EAAED,OAAO,CAAC;IACtC,IAAI,CAAC,CAACG,IAAI,GAAGH,OAAO,EAAEG,IAAI,IAAIL,IAAI;IAClC,IAAIC,aAAa,EAAE;MACjB,IAAI,CAAC,CAACK,kBAAkB,GAAGX,IAAI,CAC7BM,aAAa,CAACK,kBAAkB,EAChC,IAAI,CAAC,CAACD,IACR,CAAC;IACH,CAAC,MAAM;MACL,IAAI,CAAC,CAACC,kBAAkB,GAAG,IAAI,CAAC,CAACD,IAAI;IACvC;IACA,IAAI,CAAC,CAACE,OAAO,GAAGL,OAAO,EAAEK,OAAO,IAAIN,aAAa,EAAEM,OAAO,IAAI,KAAK;EACrE;EAEA,CAACF,IAAI;EACL,CAACC,kBAAkB;EACnB,IAAIA,kBAAkBA,CAAA,EAAW;IAC/B,OAAO,IAAI,CAAC,CAACA,kBAAkB;EACjC;EAEA,CAACC,OAAO;EACR,IAAIA,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC,CAACA,OAAO;EACtB;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMN,OAAO,GAAG,IAAI,CAACO,gBAAgB,CAAC,CAAC;IACvC,MAAMD,IAAI,GAAGd,YAAY,CAACG,aAAa,EAAE,IAAI,CAACG,IAAI,EAAEU,SAAS,EAAE;MAC7D,GAAGR,OAAO;MACVG,IAAI,EAAE,IAAI,CAAC,CAACA;IACd,CAAC,CAAC;IACF,IAAI,CAACM,gBAAgB,CAACH,IAAI,CAAC;IAC3B,OAAOA,IAAI;EACb;AACF","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ import { memo, resolve } from "@alloy-js/core";
2
+ import { GoPackageScope } from "../scopes/package.js";
3
+ import { useSourceFileScope } from "../scopes/source-file.js";
4
+ import { PackageSymbol } from "./package.js";
5
+ function closestPackageScope(scopes, decl, memberPath) {
6
+ const allMembers = [decl, ...memberPath];
7
+ for (let i = allMembers.length - 1; i >= 0; i--) {
8
+ const member = allMembers[i];
9
+ if (member instanceof PackageSymbol) {
10
+ return {
11
+ pkgSymbol: member,
12
+ members: allMembers.slice(i + 1)
13
+ };
14
+ }
15
+ }
16
+ for (let i = scopes.length - 1; i >= 0; i--) {
17
+ const scope = scopes[i];
18
+ if (scope instanceof GoPackageScope) {
19
+ return {
20
+ pkgSymbol: scope.ownerSymbol,
21
+ members: allMembers
22
+ };
23
+ }
24
+ }
25
+ return {
26
+ pkgSymbol: undefined,
27
+ members: allMembers
28
+ };
29
+ }
30
+
31
+ // converts a refkey to its fully qualified name
32
+ // e.g. if refkey is for bar in enum type foo, and
33
+ // foo is in the same namespace as the refkey, then
34
+ // the result would be foo.bar.
35
+ export function ref(refkey) {
36
+ const refSfScope = useSourceFileScope();
37
+ const resolveResult = resolve(refkey);
38
+ return memo(() => {
39
+ if (resolveResult.value === undefined) {
40
+ return ["<Unresolved Symbol>", undefined];
41
+ }
42
+ const result = resolveResult.value;
43
+ const {
44
+ pathDown,
45
+ memberPath
46
+ } = result;
47
+ const {
48
+ lexicalDeclaration
49
+ } = result;
50
+ const parts = [];
51
+ let localSymbol;
52
+ const {
53
+ pkgSymbol: pkgSymbol,
54
+ members: pathFromPkg
55
+ } = closestPackageScope(pathDown, lexicalDeclaration, memberPath);
56
+ if (pkgSymbol) {
57
+ // we need to import the package
58
+ for (const pathMember of pathFromPkg) {
59
+ const memberName = pathMember.name;
60
+ const firstChar = memberName.charAt(0);
61
+ if (firstChar.toLowerCase() === firstChar) {
62
+ throw new Error(`Can't reference non-exported symbol ${pathMember.name} from another package.`);
63
+ }
64
+ }
65
+ localSymbol = refSfScope.addImport(pkgSymbol);
66
+ }
67
+ if (localSymbol) {
68
+ parts.push(localSymbol.name);
69
+ }
70
+ for (const member of pathFromPkg) {
71
+ parts.push(member.name);
72
+ }
73
+ return [parts.join("."), result.symbol];
74
+ });
75
+ }
76
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","resolve","GoPackageScope","useSourceFileScope","PackageSymbol","closestPackageScope","scopes","decl","memberPath","allMembers","i","length","member","pkgSymbol","members","slice","scope","ownerSymbol","undefined","ref","refkey","refSfScope","resolveResult","value","result","pathDown","lexicalDeclaration","parts","localSymbol","pathFromPkg","pathMember","memberName","name","firstChar","charAt","toLowerCase","Error","addImport","push","join","symbol"],"sources":["../../../../src/symbols/reference.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { GoSymbol } from "./go.js";
2
+ /**
3
+ * A symbol for type parameters in Go.
4
+ */
5
+ export class TypeParameterSymbol extends GoSymbol {
6
+ symbolKind = "type-parameter";
7
+ constructor(name, spaces, options = {}) {
8
+ super(name, spaces, options);
9
+ this.#constraint = options.constraint ?? "any";
10
+ }
11
+ #constraint;
12
+ get constraint() {
13
+ return this.#constraint;
14
+ }
15
+ }
16
+ //# sourceMappingURL=type-parameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GoSymbol","TypeParameterSymbol","symbolKind","constructor","name","spaces","options","constraint"],"sources":["../../../../src/symbols/type-parameter.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,QAAQ,QAAyB,SAAS;AAKnD;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,SAASD,QAAQ,CAAC;EAChCE,UAAU,GAAG,gBAAgB;EAE7CC,WAAWA,CACTC,IAAsB,EACtBC,MAA+B,EAC/BC,OAAmC,GAAG,CAAC,CAAC,EACxC;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,UAAU,GAAGD,OAAO,CAACC,UAAU,IAAI,KAAK;EAChD;EAEA,CAACA,UAAU;EACX,IAAIA,UAAUA,CAAA,EAAa;IACzB,OAAO,IAAI,CAAC,CAACA,UAAU;EACzB;AACF","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Output, render } from "@alloy-js/core";
3
+ import { dedent } from "@alloy-js/core/testing";
4
+ import { expect } from "vitest";
5
+ import * as go from "../src/index.js";
6
+ export function toSourceText(c, options) {
7
+ const res = render(_$createComponent(Output, {
8
+ get children() {
9
+ return _$createComponent(go.SourceFile, {
10
+ path: "test.go",
11
+ children: c
12
+ }, {
13
+ fileName: import.meta.url,
14
+ lineNumber: 17,
15
+ columnNumber: 7
16
+ });
17
+ }
18
+ }, {
19
+ fileName: import.meta.url,
20
+ lineNumber: 16,
21
+ columnNumber: 5
22
+ }), options);
23
+ return findFile(res, "test.go").contents;
24
+ }
25
+ export function findFile(res, path) {
26
+ const result = findFileWorker(res, path);
27
+ if (!result) {
28
+ throw new Error("Expected to find file " + path);
29
+ }
30
+ return result;
31
+ function findFileWorker(res, path) {
32
+ for (const item of res.contents) {
33
+ if (item.kind === "file") {
34
+ if (item.path === path) {
35
+ return item;
36
+ }
37
+ continue;
38
+ } else {
39
+ const found = findFileWorker(item, path);
40
+ if (found) {
41
+ return found;
42
+ }
43
+ }
44
+ }
45
+ return null;
46
+ }
47
+ }
48
+ export function assertFileContents(res, expectedFiles) {
49
+ for (const [path, contents] of Object.entries(expectedFiles)) {
50
+ const file = findFile(res, path);
51
+ expect(file.contents.trim()).toBe(dedent(contents).trim());
52
+ }
53
+ }
54
+ export function TestPackage(props) {
55
+ return _$createComponent(Output, {
56
+ get children() {
57
+ return _$createComponent(go.ModuleDirectory, {
58
+ name: "github.com/alloy-framework/alloy",
59
+ get children() {
60
+ return _$createComponent(go.SourceDirectory, {
61
+ path: ".",
62
+ get children() {
63
+ return _$createComponent(go.SourceFile, {
64
+ path: "Test.go",
65
+ get children() {
66
+ return props.children;
67
+ }
68
+ }, {
69
+ fileName: import.meta.url,
70
+ lineNumber: 72,
71
+ columnNumber: 11
72
+ });
73
+ }
74
+ }, {
75
+ fileName: import.meta.url,
76
+ lineNumber: 71,
77
+ columnNumber: 9
78
+ });
79
+ }
80
+ }, {
81
+ fileName: import.meta.url,
82
+ lineNumber: 70,
83
+ columnNumber: 7
84
+ });
85
+ }
86
+ }, {
87
+ fileName: import.meta.url,
88
+ lineNumber: 69,
89
+ columnNumber: 5
90
+ });
91
+ }
92
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Output","render","dedent","expect","go","toSourceText","c","options","res","_$createComponent","children","SourceFile","path","fileName","import","meta","url","lineNumber","columnNumber","findFile","contents","result","findFileWorker","Error","item","kind","found","assertFileContents","expectedFiles","Object","entries","file","trim","toBe","TestPackage","props","ModuleDirectory","name","SourceDirectory"],"sources":["../../../test/utils.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import "@alloy-js/core/testing";
2
+ //# sourceMappingURL=vitest.setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../test/vitest.setup.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,wBAAwB","ignoreList":[]}