@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.
- package/dist/dev/src/builtins/fmt/fmt.js +148 -0
- package/dist/dev/src/builtins/fmt/fmt.js.map +1 -0
- package/dist/dev/src/builtins/index.js +11 -0
- package/dist/dev/src/builtins/index.js.map +1 -0
- package/dist/dev/src/builtins/io/io.js +650 -0
- package/dist/dev/src/builtins/io/io.js.map +1 -0
- package/dist/dev/src/builtins/net/net.js +1212 -0
- package/dist/dev/src/builtins/net/net.js.map +1 -0
- package/dist/dev/src/builtins/time/time.js +464 -0
- package/dist/dev/src/builtins/time/time.js.map +1 -0
- package/dist/dev/src/components/ImportStatement.js +114 -0
- package/dist/dev/src/components/ImportStatement.js.map +1 -0
- package/dist/dev/src/components/ModuleDirectory.js +28 -0
- package/dist/dev/src/components/ModuleDirectory.js.map +1 -0
- package/dist/dev/src/components/Name.js +12 -0
- package/dist/dev/src/components/Name.js.map +1 -0
- package/dist/dev/src/components/Reference.js +15 -0
- package/dist/dev/src/components/Reference.js.map +1 -0
- package/dist/dev/src/components/SourceDirectory.js +38 -0
- package/dist/dev/src/components/SourceDirectory.js.map +1 -0
- package/dist/dev/src/components/SourceFile.js +119 -0
- package/dist/dev/src/components/SourceFile.js.map +1 -0
- package/dist/dev/src/components/doc/comment.js +46 -0
- package/dist/dev/src/components/doc/comment.js.map +1 -0
- package/dist/dev/src/components/doc/comment.test.js +371 -0
- package/dist/dev/src/components/doc/comment.test.js.map +1 -0
- package/dist/dev/src/components/function/function.js +250 -0
- package/dist/dev/src/components/function/function.js.map +1 -0
- package/dist/dev/src/components/function/function.test.js +630 -0
- package/dist/dev/src/components/function/function.test.js.map +1 -0
- package/dist/dev/src/components/index.js +16 -0
- package/dist/dev/src/components/index.js.map +1 -0
- package/dist/dev/src/components/interface/declaration.js +245 -0
- package/dist/dev/src/components/interface/declaration.js.map +1 -0
- package/dist/dev/src/components/interface/interface.test.js +853 -0
- package/dist/dev/src/components/interface/interface.test.js.map +1 -0
- package/dist/dev/src/components/package.test.js +137 -0
- package/dist/dev/src/components/package.test.js.map +1 -0
- package/dist/dev/src/components/parameters/parameters.js +102 -0
- package/dist/dev/src/components/parameters/parameters.js.map +1 -0
- package/dist/dev/src/components/parameters/typeparameters.js +93 -0
- package/dist/dev/src/components/parameters/typeparameters.js.map +1 -0
- package/dist/dev/src/components/pointer/pointer.js +8 -0
- package/dist/dev/src/components/pointer/pointer.js.map +1 -0
- package/dist/dev/src/components/stc/index.js +27 -0
- package/dist/dev/src/components/stc/index.js.map +1 -0
- package/dist/dev/src/components/struct/declaration.js +213 -0
- package/dist/dev/src/components/struct/declaration.js.map +1 -0
- package/dist/dev/src/components/struct/struct.test.js +1261 -0
- package/dist/dev/src/components/struct/struct.test.js.map +1 -0
- package/dist/dev/src/components/type/declaration.js +112 -0
- package/dist/dev/src/components/type/declaration.js.map +1 -0
- package/dist/dev/src/components/var/declaration.js +136 -0
- package/dist/dev/src/components/var/declaration.js.map +1 -0
- package/dist/dev/src/components/var/var-declaration.test.js +564 -0
- package/dist/dev/src/components/var/var-declaration.test.js.map +1 -0
- package/dist/dev/src/context/package.js +6 -0
- package/dist/dev/src/context/package.js.map +1 -0
- package/dist/dev/src/create-module.js +157 -0
- package/dist/dev/src/create-module.js.map +1 -0
- package/dist/dev/src/create-module.test.js +175 -0
- package/dist/dev/src/create-module.test.js.map +1 -0
- package/dist/dev/src/index.js +7 -0
- package/dist/dev/src/index.js.map +1 -0
- package/dist/dev/src/name-policy.js +27 -0
- package/dist/dev/src/name-policy.js.map +1 -0
- package/dist/dev/src/scopes/contexts.js +34 -0
- package/dist/dev/src/scopes/contexts.js.map +1 -0
- package/dist/dev/src/scopes/factories.js +17 -0
- package/dist/dev/src/scopes/factories.js.map +1 -0
- package/dist/dev/src/scopes/function.js +14 -0
- package/dist/dev/src/scopes/function.js.map +1 -0
- package/dist/dev/src/scopes/go.js +12 -0
- package/dist/dev/src/scopes/go.js.map +1 -0
- package/dist/dev/src/scopes/index.js +10 -0
- package/dist/dev/src/scopes/index.js.map +1 -0
- package/dist/dev/src/scopes/lexical.js +11 -0
- package/dist/dev/src/scopes/lexical.js.map +1 -0
- package/dist/dev/src/scopes/module.js +31 -0
- package/dist/dev/src/scopes/module.js.map +1 -0
- package/dist/dev/src/scopes/named-type.js +33 -0
- package/dist/dev/src/scopes/named-type.js.map +1 -0
- package/dist/dev/src/scopes/package.js +39 -0
- package/dist/dev/src/scopes/package.js.map +1 -0
- package/dist/dev/src/scopes/source-file.js +43 -0
- package/dist/dev/src/scopes/source-file.js.map +1 -0
- package/dist/dev/src/symbols/factories.js +165 -0
- package/dist/dev/src/symbols/factories.js.map +1 -0
- package/dist/dev/src/symbols/function.js +24 -0
- package/dist/dev/src/symbols/function.js.map +1 -0
- package/dist/dev/src/symbols/go.js +60 -0
- package/dist/dev/src/symbols/go.js.map +1 -0
- package/dist/dev/src/symbols/index.js +7 -0
- package/dist/dev/src/symbols/index.js.map +1 -0
- package/dist/dev/src/symbols/named-type.js +42 -0
- package/dist/dev/src/symbols/named-type.js.map +1 -0
- package/dist/dev/src/symbols/package.js +39 -0
- package/dist/dev/src/symbols/package.js.map +1 -0
- package/dist/dev/src/symbols/reference.js +76 -0
- package/dist/dev/src/symbols/reference.js.map +1 -0
- package/dist/dev/src/symbols/type-parameter.js +16 -0
- package/dist/dev/src/symbols/type-parameter.js.map +1 -0
- package/dist/dev/test/utils.js +92 -0
- package/dist/dev/test/utils.js.map +1 -0
- package/dist/dev/test/vitest.setup.js +2 -0
- package/dist/dev/test/vitest.setup.js.map +1 -0
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +2 -2
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/type/declaration.d.ts.map +1 -1
- package/dist/src/components/type/declaration.js +2 -2
- package/dist/src/components/type/declaration.js.map +1 -1
- package/dist/src/create-module.d.ts.map +1 -1
- package/dist/src/create-module.js +8 -9
- package/dist/src/create-module.js.map +1 -1
- package/dist/src/scopes/factories.d.ts.map +1 -1
- package/dist/src/scopes/factories.js +3 -2
- package/dist/src/scopes/factories.js.map +1 -1
- package/dist/src/scopes/module.js +2 -2
- package/dist/src/scopes/module.js.map +1 -1
- package/dist/src/scopes/package.js +2 -2
- package/dist/src/scopes/package.js.map +1 -1
- package/dist/src/scopes/source-file.d.ts.map +1 -1
- package/dist/src/scopes/source-file.js +4 -3
- package/dist/src/scopes/source-file.js.map +1 -1
- package/dist/src/symbols/factories.d.ts.map +1 -1
- package/dist/src/symbols/factories.js +67 -16
- package/dist/src/symbols/factories.js.map +1 -1
- package/dist/src/symbols/go.d.ts.map +1 -1
- package/dist/src/symbols/go.js +6 -2
- package/dist/src/symbols/go.js.map +1 -1
- package/dist/src/symbols/named-type.d.ts.map +1 -1
- package/dist/src/symbols/named-type.js +2 -2
- package/dist/src/symbols/named-type.js.map +1 -1
- package/dist/src/symbols/package.d.ts.map +1 -1
- package/dist/src/symbols/package.js +2 -1
- package/dist/src/symbols/package.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -6
- package/src/components/SourceFile.tsx +2 -1
- package/src/components/type/declaration.tsx +10 -4
- package/src/create-module.ts +11 -8
- package/src/scopes/factories.ts +3 -3
- package/src/scopes/module.ts +2 -2
- package/src/scopes/package.ts +2 -2
- package/src/scopes/source-file.ts +3 -1
- package/src/symbols/factories.ts +82 -47
- package/src/symbols/go.ts +6 -1
- package/src/symbols/named-type.ts +3 -1
- package/src/symbols/package.ts +2 -2
- package/vitest.config.ts +8 -0
package/package.json
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alloy-js/go",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-dev.3",
|
|
4
4
|
"description": "Go bindings for Alloy",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/alloy-framework/alloy.git"
|
|
8
|
+
},
|
|
5
9
|
"exports": {
|
|
6
10
|
".": {
|
|
11
|
+
"development": "./dist/dev/src/index.js",
|
|
7
12
|
"import": "./dist/src/index.js"
|
|
8
13
|
},
|
|
9
14
|
"./stc": {
|
|
15
|
+
"development": "./dist/dev/src/components/stc/index.js",
|
|
10
16
|
"import": "./dist/src/components/stc/index.js"
|
|
11
17
|
}
|
|
12
18
|
},
|
|
13
19
|
"imports": {
|
|
14
20
|
"#test/*": "./test/*",
|
|
15
21
|
"#components/*": {
|
|
22
|
+
"development": "./dist/dev/src/components/*",
|
|
16
23
|
"default": "./dist/src/components/*"
|
|
17
24
|
}
|
|
18
25
|
},
|
|
@@ -20,23 +27,23 @@
|
|
|
20
27
|
"author": "",
|
|
21
28
|
"license": "MIT",
|
|
22
29
|
"dependencies": {
|
|
23
|
-
"@alloy-js/core": "~0.22.0 || >= 0.23.0-dev.
|
|
30
|
+
"@alloy-js/core": "~0.22.0 || >= 0.23.0-dev.12",
|
|
24
31
|
"change-case": "^5.4.4",
|
|
25
32
|
"pathe": "^2.0.3"
|
|
26
33
|
},
|
|
27
34
|
"devDependencies": {
|
|
28
|
-
"@alloy-js/cli": "~0.22.0 || >= 0.23.0-dev.
|
|
29
|
-
"@alloy-js/rollup-plugin": "~0.1.0 || >= 0.1.1-dev.
|
|
35
|
+
"@alloy-js/cli": "~0.22.0 || >= 0.23.0-dev.4",
|
|
36
|
+
"@alloy-js/rollup-plugin": "~0.1.0 || >= 0.1.1-dev.1",
|
|
30
37
|
"@microsoft/api-extractor": "~7.52.8",
|
|
31
38
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
32
39
|
"concurrently": "^9.2.0",
|
|
33
40
|
"typescript": "^5.8.3",
|
|
34
|
-
"vitest": "
|
|
41
|
+
"vitest": "3.2.4"
|
|
35
42
|
},
|
|
36
43
|
"type": "module",
|
|
37
44
|
"scripts": {
|
|
38
45
|
"generate-docs": "api-extractor run",
|
|
39
|
-
"build": "alloy build && pnpm run generate-docs",
|
|
46
|
+
"build": "alloy build --with-dev && pnpm run generate-docs",
|
|
40
47
|
"clean": "rimraf dist/ .temp/",
|
|
41
48
|
"test:watch": "vitest -w",
|
|
42
49
|
"watch": "alloy build --watch",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SourceFile as CoreSourceFile,
|
|
3
|
+
createScope,
|
|
3
4
|
Scope,
|
|
4
5
|
Show,
|
|
5
6
|
SourceDirectoryContext,
|
|
@@ -27,7 +28,7 @@ export function SourceFile(props: SourceFileProps) {
|
|
|
27
28
|
const directoryContext = useContext(SourceDirectoryContext)!;
|
|
28
29
|
const currentDir = directoryContext.path;
|
|
29
30
|
const path: string = join(currentDir, props.path);
|
|
30
|
-
const scope =
|
|
31
|
+
const scope = createScope(GoSourceFileScope, path, pkg);
|
|
31
32
|
|
|
32
33
|
const header = (
|
|
33
34
|
<SourceFileHeader
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
Children,
|
|
3
3
|
ComponentContext,
|
|
4
4
|
createContext,
|
|
5
|
+
createSymbol,
|
|
5
6
|
Declaration,
|
|
6
7
|
Indent,
|
|
7
8
|
List,
|
|
@@ -73,10 +74,15 @@ export function TypeDeclaration(props: TypeDeclarationProps) {
|
|
|
73
74
|
});
|
|
74
75
|
|
|
75
76
|
for (const typeParameter of props.typeParameters ?? []) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
createSymbol(
|
|
78
|
+
TypeParameterSymbol,
|
|
79
|
+
typeParameter.name,
|
|
80
|
+
symbol.typeParameters,
|
|
81
|
+
{
|
|
82
|
+
refkeys: typeParameter.refkey,
|
|
83
|
+
constraint: typeParameter.constraint,
|
|
84
|
+
},
|
|
85
|
+
);
|
|
80
86
|
}
|
|
81
87
|
}
|
|
82
88
|
|
package/src/create-module.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Binder,
|
|
3
|
+
createSymbol,
|
|
3
4
|
LibrarySymbolReference,
|
|
4
5
|
namekey,
|
|
5
6
|
refkey,
|
|
@@ -191,14 +192,13 @@ function createSymbolFromDescriptor(
|
|
|
191
192
|
if (ownerSymbol === null) {
|
|
192
193
|
const dname = basename(name);
|
|
193
194
|
const packageName = descriptor.name ?? dname;
|
|
194
|
-
|
|
195
|
+
return createSymbol(PackageSymbol, packageName, undefined, {
|
|
195
196
|
binder,
|
|
196
197
|
refkeys: refkey(),
|
|
197
198
|
lazyMemberInitializer,
|
|
198
199
|
path: descriptor.path,
|
|
199
200
|
builtin: context.builtin,
|
|
200
201
|
});
|
|
201
|
-
return packageSymbol;
|
|
202
202
|
}
|
|
203
203
|
if (!(ownerSymbol instanceof PackageSymbol)) {
|
|
204
204
|
throw new Error(
|
|
@@ -208,7 +208,7 @@ function createSymbolFromDescriptor(
|
|
|
208
208
|
if (ownerSymbol.members.symbolNames.has(name)) {
|
|
209
209
|
return ownerSymbol.members.symbolNames.get(name)! as PackageSymbol;
|
|
210
210
|
}
|
|
211
|
-
return
|
|
211
|
+
return createSymbol(PackageSymbol, name, ownerSymbol as PackageSymbol, {
|
|
212
212
|
binder,
|
|
213
213
|
refkeys: refkey(),
|
|
214
214
|
lazyMemberInitializer,
|
|
@@ -223,7 +223,8 @@ function createSymbolFromDescriptor(
|
|
|
223
223
|
`Cannot create a named type symbol (${name}) with a non-package owner symbol (${ownerSymbol.name}).`,
|
|
224
224
|
);
|
|
225
225
|
}
|
|
226
|
-
return
|
|
226
|
+
return createSymbol(
|
|
227
|
+
NamedTypeSymbol,
|
|
227
228
|
namekey(name),
|
|
228
229
|
ownerSymbol.members,
|
|
229
230
|
descriptor.kind,
|
|
@@ -239,7 +240,7 @@ function createSymbolFromDescriptor(
|
|
|
239
240
|
`Cannot create a function symbol (${name}) with a non-package owner symbol (${ownerSymbol.name}).`,
|
|
240
241
|
);
|
|
241
242
|
}
|
|
242
|
-
return
|
|
243
|
+
return createSymbol(FunctionSymbol, namekey(name), ownerSymbol.members, {
|
|
243
244
|
binder,
|
|
244
245
|
refkeys: refkey(),
|
|
245
246
|
});
|
|
@@ -249,7 +250,8 @@ function createSymbolFromDescriptor(
|
|
|
249
250
|
`Cannot create a field symbol (${name}) with a non-named-type owner symbol (${ownerSymbol.name}).`,
|
|
250
251
|
);
|
|
251
252
|
}
|
|
252
|
-
return
|
|
253
|
+
return createSymbol(
|
|
254
|
+
NamedTypeSymbol,
|
|
253
255
|
namekey(name),
|
|
254
256
|
ownerSymbol.members,
|
|
255
257
|
ownerSymbol.typeKind === "interface" ?
|
|
@@ -272,7 +274,8 @@ function createSymbolFromDescriptor(
|
|
|
272
274
|
`Cannot create a field symbol (${name}) with a non-named-type owner symbol (${ownerSymbol.name}).`,
|
|
273
275
|
);
|
|
274
276
|
}
|
|
275
|
-
const symbol =
|
|
277
|
+
const symbol = createSymbol(
|
|
278
|
+
NamedTypeSymbol,
|
|
276
279
|
namekey(name),
|
|
277
280
|
ownerSymbol.members,
|
|
278
281
|
ownerSymbol.typeKind === "interface" ?
|
|
@@ -298,7 +301,7 @@ function createSymbolFromDescriptor(
|
|
|
298
301
|
`Cannot create a variable symbol (${name}) with a non-package owner symbol (${ownerSymbol.name}).`,
|
|
299
302
|
);
|
|
300
303
|
}
|
|
301
|
-
return
|
|
304
|
+
return createSymbol(GoSymbol, namekey(name), ownerSymbol.members, {
|
|
302
305
|
binder,
|
|
303
306
|
refkeys: refkey(),
|
|
304
307
|
type:
|
package/src/scopes/factories.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OutputScopeOptions } from "@alloy-js/core";
|
|
1
|
+
import { OutputScopeOptions, createScope } from "@alloy-js/core";
|
|
2
2
|
import { NamedTypeSymbol } from "../symbols/named-type.js";
|
|
3
3
|
import { useGoScope } from "./contexts.js";
|
|
4
4
|
import { GoFunctionScope } from "./function.js";
|
|
@@ -20,10 +20,10 @@ export function createNamedTypeScope(
|
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
return
|
|
23
|
+
return createScope(GoNamedTypeScope, ownerSymbol, currentScope, options);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export function createFunctionScope(options: OutputScopeOptions = {}) {
|
|
27
27
|
const parentScope = useGoScope();
|
|
28
|
-
return
|
|
28
|
+
return createScope(GoFunctionScope, "function scope", parentScope, options);
|
|
29
29
|
}
|
package/src/scopes/module.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OutputScope, useScope } from "@alloy-js/core";
|
|
1
|
+
import { OutputScope, createScope, useScope } from "@alloy-js/core";
|
|
2
2
|
import { GoScope } from "./go.js";
|
|
3
3
|
|
|
4
4
|
export class GoModuleScope extends GoScope {
|
|
@@ -18,7 +18,7 @@ export function createGoModuleScope(name: string) {
|
|
|
18
18
|
if (parentScope) {
|
|
19
19
|
throw new Error("Modules can only be created at the top level");
|
|
20
20
|
}
|
|
21
|
-
const scope =
|
|
21
|
+
const scope = createScope(GoModuleScope, name);
|
|
22
22
|
return scope;
|
|
23
23
|
}
|
|
24
24
|
|
package/src/scopes/package.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OutputScope, useScope } from "@alloy-js/core";
|
|
1
|
+
import { OutputScope, createScope, useScope } from "@alloy-js/core";
|
|
2
2
|
import type { PackageSymbol } from "../symbols/package.js";
|
|
3
3
|
import { GoModuleScope } from "./module.js";
|
|
4
4
|
import { GoNamedTypeScope } from "./named-type.js";
|
|
@@ -28,7 +28,7 @@ export function createGoPackageScope(packageSymbol: PackageSymbol) {
|
|
|
28
28
|
throw new Error("Packages can only be created within a package or module");
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
const scope =
|
|
31
|
+
const scope = createScope(GoPackageScope, packageSymbol, parentScope);
|
|
32
32
|
|
|
33
33
|
return scope;
|
|
34
34
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OutputScope,
|
|
3
3
|
OutputScopeOptions,
|
|
4
|
+
createSymbol,
|
|
4
5
|
shallowReactive,
|
|
5
6
|
useScope,
|
|
6
7
|
} from "@alloy-js/core";
|
|
@@ -39,8 +40,9 @@ export class GoSourceFileScope extends GoLexicalScope {
|
|
|
39
40
|
return this.#imports.get(import_)!;
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
const localSymbol =
|
|
43
|
+
const localSymbol = createSymbol(GoSymbol, import_.name, this.values, {
|
|
43
44
|
aliasTarget: import_,
|
|
45
|
+
binder: this.binder,
|
|
44
46
|
});
|
|
45
47
|
|
|
46
48
|
this.#imports.set(import_, localSymbol);
|
package/src/symbols/factories.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Namekey, NamePolicyGetter } from "@alloy-js/core";
|
|
1
|
+
import { createSymbol, Namekey, NamePolicyGetter } from "@alloy-js/core";
|
|
2
2
|
import { join } from "pathe";
|
|
3
3
|
import { GoElements, useGoNamePolicy } from "../name-policy.js";
|
|
4
4
|
import { useGoScope, useNamedTypeScope } from "../scopes/contexts.js";
|
|
@@ -27,11 +27,11 @@ export function createParameterSymbol(
|
|
|
27
27
|
if (!(scope instanceof GoFunctionScope)) {
|
|
28
28
|
throw new Error(`Can't create parameter symbol outside of a func scope.`);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
);
|
|
30
|
+
const binder = options.binder ?? scope.binder;
|
|
31
|
+
return createSymbol(GoSymbol, originalName, scope.parameters, {
|
|
32
|
+
...withNamePolicy(options, "parameter"),
|
|
33
|
+
binder,
|
|
34
|
+
});
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export interface CreateTypeParameterSymbolOptions extends GoSymbolOptions {
|
|
@@ -51,11 +51,11 @@ export function createTypeParameterSymbol(
|
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
);
|
|
54
|
+
const binder = options.binder ?? scope.binder;
|
|
55
|
+
return createSymbol(GoSymbol, originalName, scope.typeParameters, {
|
|
56
|
+
...withNamePolicy(options, "type-parameter"),
|
|
57
|
+
binder,
|
|
58
|
+
});
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export function createStructMemberSymbol(
|
|
@@ -73,11 +73,16 @@ export function createStructMemberSymbol(
|
|
|
73
73
|
);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
const binder = options.binder ?? scope.ownerSymbol.binder;
|
|
77
|
+
return createSymbol(
|
|
78
|
+
NamedTypeSymbol,
|
|
77
79
|
originalName,
|
|
78
80
|
scope.members,
|
|
79
81
|
"struct-member",
|
|
80
|
-
|
|
82
|
+
{
|
|
83
|
+
...withNamePolicy(options, "struct-member"),
|
|
84
|
+
binder,
|
|
85
|
+
},
|
|
81
86
|
);
|
|
82
87
|
}
|
|
83
88
|
|
|
@@ -93,11 +98,16 @@ export function createInterfaceMemberSymbol(
|
|
|
93
98
|
);
|
|
94
99
|
}
|
|
95
100
|
|
|
96
|
-
|
|
101
|
+
const binder = options.binder ?? scope.ownerSymbol.binder;
|
|
102
|
+
return createSymbol(
|
|
103
|
+
NamedTypeSymbol,
|
|
97
104
|
originalName,
|
|
98
105
|
scope.members,
|
|
99
106
|
"interface-member",
|
|
100
|
-
|
|
107
|
+
{
|
|
108
|
+
...withNamePolicy(options, "interface-member"),
|
|
109
|
+
binder,
|
|
110
|
+
},
|
|
101
111
|
);
|
|
102
112
|
}
|
|
103
113
|
|
|
@@ -109,12 +119,19 @@ export function createPackageSymbol(name: string, path?: string) {
|
|
|
109
119
|
const modName = mod.name;
|
|
110
120
|
const builtin = mod.builtin;
|
|
111
121
|
const pkgPath = path ? join(modName, path) : modName;
|
|
112
|
-
return
|
|
122
|
+
return createSymbol(PackageSymbol, name, undefined, {
|
|
123
|
+
path: pkgPath,
|
|
124
|
+
builtin,
|
|
125
|
+
binder: mod.binder,
|
|
126
|
+
});
|
|
113
127
|
}
|
|
114
128
|
if (pkgSymbol.members.symbolNames.has(name)) {
|
|
115
129
|
return pkgSymbol.members.symbolNames.get(name)! as PackageSymbol;
|
|
116
130
|
}
|
|
117
|
-
return
|
|
131
|
+
return createSymbol(PackageSymbol, name, pkgSymbol, {
|
|
132
|
+
path,
|
|
133
|
+
binder: pkgSymbol.binder,
|
|
134
|
+
});
|
|
118
135
|
}
|
|
119
136
|
|
|
120
137
|
export function createFunctionSymbol(
|
|
@@ -124,17 +141,17 @@ export function createFunctionSymbol(
|
|
|
124
141
|
) {
|
|
125
142
|
const scope = useGoScope();
|
|
126
143
|
if (!isMethod && scope instanceof GoLexicalScope) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
);
|
|
144
|
+
const binder = options.binder ?? scope.binder;
|
|
145
|
+
return createSymbol(FunctionSymbol, originalName, scope.types, {
|
|
146
|
+
...withNamePolicy(options, "function"),
|
|
147
|
+
binder,
|
|
148
|
+
});
|
|
132
149
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
);
|
|
150
|
+
const binder = options.binder ?? scope.binder;
|
|
151
|
+
return createSymbol(FunctionSymbol, originalName, undefined, {
|
|
152
|
+
...withNamePolicy(options, "function"),
|
|
153
|
+
binder,
|
|
154
|
+
});
|
|
138
155
|
}
|
|
139
156
|
|
|
140
157
|
export function createPropertySymbol(
|
|
@@ -142,11 +159,11 @@ export function createPropertySymbol(
|
|
|
142
159
|
options: GoSymbolOptions,
|
|
143
160
|
) {
|
|
144
161
|
const scope = useNamedTypeScope();
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
);
|
|
162
|
+
const binder = options.binder ?? scope.binder;
|
|
163
|
+
return createSymbol(GoSymbol, originalName, scope.members, {
|
|
164
|
+
...withNamePolicy(options, "struct-member"),
|
|
165
|
+
binder,
|
|
166
|
+
});
|
|
150
167
|
}
|
|
151
168
|
|
|
152
169
|
export function createVariableSymbol(
|
|
@@ -159,11 +176,11 @@ export function createVariableSymbol(
|
|
|
159
176
|
`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`,
|
|
160
177
|
);
|
|
161
178
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
);
|
|
179
|
+
const binder = options.binder ?? scope.binder;
|
|
180
|
+
return createSymbol(GoSymbol, originalName, scope.values, {
|
|
181
|
+
...withNamePolicy(options, "variable"),
|
|
182
|
+
binder,
|
|
183
|
+
});
|
|
167
184
|
}
|
|
168
185
|
|
|
169
186
|
export function createTypeSymbol(
|
|
@@ -173,12 +190,11 @@ export function createTypeSymbol(
|
|
|
173
190
|
) {
|
|
174
191
|
const scope = useGoScope();
|
|
175
192
|
if (scope instanceof GoLexicalScope) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
);
|
|
193
|
+
const binder = options.binder ?? scope.binder;
|
|
194
|
+
return createSymbol(NamedTypeSymbol, originalName, scope.types, kind, {
|
|
195
|
+
...withNamePolicy(options, "type"),
|
|
196
|
+
binder,
|
|
197
|
+
});
|
|
182
198
|
}
|
|
183
199
|
throw new Error(
|
|
184
200
|
`Can't create type symbol outside of a lexical scope, got a ${scope.constructor.name}.`,
|
|
@@ -192,11 +208,16 @@ export function createNestedStructSymbol(
|
|
|
192
208
|
) {
|
|
193
209
|
const scope = useGoScope();
|
|
194
210
|
if (scope instanceof GoNamedTypeScope) {
|
|
195
|
-
|
|
211
|
+
const binder = options.binder ?? scope.binder;
|
|
212
|
+
return createSymbol(
|
|
213
|
+
NamedTypeSymbol,
|
|
196
214
|
originalName,
|
|
197
215
|
scope.ownerSymbol.members,
|
|
198
216
|
kind,
|
|
199
|
-
|
|
217
|
+
{
|
|
218
|
+
...withNamePolicy(options, "struct-member"),
|
|
219
|
+
binder,
|
|
220
|
+
},
|
|
200
221
|
);
|
|
201
222
|
}
|
|
202
223
|
throw new Error(
|
|
@@ -214,9 +235,23 @@ export function createAnonymousTypeSymbol(
|
|
|
214
235
|
"anonymous_" + anonymousTypeID++ + "_this_should_not_appear_in_output";
|
|
215
236
|
const scope = useGoScope();
|
|
216
237
|
if (scope instanceof GoLexicalScope) {
|
|
217
|
-
|
|
238
|
+
const binder = options.binder ?? scope.binder;
|
|
239
|
+
return createSymbol(NamedTypeSymbol, name, scope.types, kind, {
|
|
240
|
+
...options,
|
|
241
|
+
binder,
|
|
242
|
+
});
|
|
218
243
|
} else if (scope instanceof GoNamedTypeScope) {
|
|
219
|
-
|
|
244
|
+
const binder = options.binder ?? scope.binder;
|
|
245
|
+
return createSymbol(
|
|
246
|
+
NamedTypeSymbol,
|
|
247
|
+
name,
|
|
248
|
+
scope.ownerSymbol.members,
|
|
249
|
+
kind,
|
|
250
|
+
{
|
|
251
|
+
...options,
|
|
252
|
+
binder,
|
|
253
|
+
},
|
|
254
|
+
);
|
|
220
255
|
}
|
|
221
256
|
throw new Error(
|
|
222
257
|
`Can't create anonymous type symbol outside of a lexical or NamedType scope, got a ${scope.constructor.name}.`,
|
package/src/symbols/go.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
OutputSpace,
|
|
6
6
|
OutputSymbol,
|
|
7
7
|
OutputSymbolOptions,
|
|
8
|
+
createSymbol,
|
|
8
9
|
} from "@alloy-js/core";
|
|
9
10
|
import { GoScope } from "../scopes/go.js";
|
|
10
11
|
import { PackageSymbol } from "./package.js";
|
|
@@ -75,7 +76,11 @@ export class GoSymbol extends OutputSymbol {
|
|
|
75
76
|
|
|
76
77
|
copy(): OutputSymbol {
|
|
77
78
|
const options = this.getGoCopyOptions();
|
|
78
|
-
const
|
|
79
|
+
const binder = this.binder;
|
|
80
|
+
const copy = createSymbol(GoSymbol, this.name, undefined, {
|
|
81
|
+
...options,
|
|
82
|
+
binder,
|
|
83
|
+
});
|
|
79
84
|
this.initializeGoCopy(copy);
|
|
80
85
|
return copy;
|
|
81
86
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
createSymbol,
|
|
2
3
|
Namekey,
|
|
3
4
|
OutputSpace,
|
|
4
5
|
track,
|
|
@@ -62,7 +63,8 @@ export class NamedTypeSymbol extends GoSymbol {
|
|
|
62
63
|
|
|
63
64
|
copy() {
|
|
64
65
|
const options = this.getGoCopyOptions();
|
|
65
|
-
const copy =
|
|
66
|
+
const copy = createSymbol(
|
|
67
|
+
NamedTypeSymbol,
|
|
66
68
|
this.name,
|
|
67
69
|
undefined,
|
|
68
70
|
this.#typeKind,
|
package/src/symbols/package.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OutputSymbolOptions } from "@alloy-js/core";
|
|
1
|
+
import { OutputSymbolOptions, createSymbol } from "@alloy-js/core";
|
|
2
2
|
import { join } from "pathe";
|
|
3
3
|
import { NamedTypeSymbol } from "./named-type.js";
|
|
4
4
|
|
|
@@ -44,7 +44,7 @@ export class PackageSymbol extends NamedTypeSymbol {
|
|
|
44
44
|
|
|
45
45
|
copy() {
|
|
46
46
|
const options = this.getGoCopyOptions();
|
|
47
|
-
const copy =
|
|
47
|
+
const copy = createSymbol(PackageSymbol, this.name, undefined, {
|
|
48
48
|
...options,
|
|
49
49
|
path: this.#path,
|
|
50
50
|
});
|
package/vitest.config.ts
CHANGED
|
@@ -2,6 +2,14 @@ import alloyPlugin from "@alloy-js/rollup-plugin";
|
|
|
2
2
|
import { defineConfig } from "vitest/config";
|
|
3
3
|
|
|
4
4
|
export default defineConfig({
|
|
5
|
+
resolve: {
|
|
6
|
+
conditions: ["source"],
|
|
7
|
+
},
|
|
8
|
+
ssr: {
|
|
9
|
+
resolve: {
|
|
10
|
+
conditions: ["source"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
5
13
|
esbuild: {
|
|
6
14
|
jsx: "preserve",
|
|
7
15
|
sourcemap: "both",
|