@alloy-js/go 0.3.0-dev.2 → 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/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -4
- 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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../test/vitest.setup.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,wBAAwB","ignoreList":[]}
|