@alloy-js/csharp 0.20.0-dev.5 → 0.20.0-dev.8
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/src/components/SourceFile.d.ts +5 -0
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +18 -58
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/access-expression/access-expression.d.ts +54 -0
- package/dist/src/components/access-expression/access-expression.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.js +277 -0
- package/dist/src/components/access-expression/access-expression.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts +2 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.js +336 -0
- package/dist/src/components/access-expression/access-expression.test.js.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts +32 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.js +99 -0
- package/dist/src/components/access-expression/part-descriptors.js.map +1 -0
- package/dist/src/components/class/declaration.d.ts.map +1 -1
- package/dist/src/components/class/declaration.js.map +1 -1
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/invocation-expression/invocation-expression.d.ts +29 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.js +70 -0
- package/dist/src/components/invocation-expression/invocation-expression.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts +2 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js +105 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
- package/dist/src/components/parameters/parameters.d.ts +1 -2
- package/dist/src/components/parameters/parameters.d.ts.map +1 -1
- package/dist/src/components/parameters/parameters.js +2 -1
- package/dist/src/components/parameters/parameters.js.map +1 -1
- package/dist/src/components/parameters/parameters.test.js +66 -0
- package/dist/src/components/parameters/parameters.test.js.map +1 -1
- package/dist/src/components/property/property.d.ts +2 -2
- package/dist/src/components/property/property.d.ts.map +1 -1
- package/dist/src/components/property/property.js +10 -3
- package/dist/src/components/property/property.js.map +1 -1
- package/dist/src/scopes/csharp.d.ts +2 -0
- package/dist/src/scopes/csharp.d.ts.map +1 -1
- package/dist/src/scopes/csharp.js +3 -0
- package/dist/src/scopes/csharp.js.map +1 -1
- package/dist/src/symbols/csharp.d.ts +11 -0
- package/dist/src/symbols/csharp.d.ts.map +1 -1
- package/dist/src/symbols/csharp.js +23 -0
- package/dist/src/symbols/csharp.js.map +1 -1
- package/dist/src/symbols/factories.d.ts.map +1 -1
- package/dist/src/symbols/factories.js +12 -6
- package/dist/src/symbols/factories.js.map +1 -1
- package/dist/src/symbols/reference.d.ts +2 -2
- package/dist/src/symbols/reference.d.ts.map +1 -1
- package/dist/src/symbols/reference.js +17 -5
- package/dist/src/symbols/reference.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/components/SourceFile.tsx +27 -30
- package/src/components/access-expression/access-expression.test.tsx +284 -0
- package/src/components/access-expression/access-expression.tsx +375 -0
- package/src/components/access-expression/part-descriptors.ts +175 -0
- package/src/components/class/declaration.tsx +1 -0
- package/src/components/index.ts +1 -0
- package/src/components/invocation-expression/invocation-expression.test.tsx +101 -0
- package/src/components/invocation-expression/invocation-expression.tsx +60 -0
- package/src/components/parameters/parameters.test.tsx +46 -0
- package/src/components/parameters/parameters.tsx +2 -2
- package/src/components/property/property.tsx +8 -2
- package/src/scopes/csharp.ts +5 -0
- package/src/symbols/csharp.ts +32 -0
- package/src/symbols/factories.ts +31 -15
- package/src/symbols/{reference.ts → reference.tsx} +11 -9
- package/temp/api.json +271 -36
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation-expression.test.d.ts","sourceRoot":"","sources":["../../../../src/components/invocation-expression/invocation-expression.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { ClassDeclaration } from "#components/class/declaration.js";
|
|
3
|
+
import { Method } from "#components/method/method.js";
|
|
4
|
+
import { TestNamespace } from "#test/utils.js";
|
|
5
|
+
import { namekey } from "@alloy-js/core";
|
|
6
|
+
import { describe, expect, it } from "vitest";
|
|
7
|
+
import { InvocationExpression } from "./invocation-expression.js";
|
|
8
|
+
it("makes a call with no arguments", () => {
|
|
9
|
+
const template = _$createComponent(InvocationExpression, {
|
|
10
|
+
target: "Foo"
|
|
11
|
+
});
|
|
12
|
+
expect(template).toRenderTo(`Foo()`);
|
|
13
|
+
});
|
|
14
|
+
it("makes a call with arguments", () => {
|
|
15
|
+
const template = _$createComponent(InvocationExpression, {
|
|
16
|
+
target: "Foo",
|
|
17
|
+
args: ["42", `"string"`]
|
|
18
|
+
});
|
|
19
|
+
expect(template).toRenderTo(`Foo(42, "string")`);
|
|
20
|
+
});
|
|
21
|
+
it("makes a call with type parameters", () => {
|
|
22
|
+
const template = _$createComponent(InvocationExpression, {
|
|
23
|
+
target: "Foo",
|
|
24
|
+
typeArgs: ["Bar", "Baz"]
|
|
25
|
+
});
|
|
26
|
+
expect(template).toRenderTo(`Foo<Bar, Baz>()`);
|
|
27
|
+
});
|
|
28
|
+
it("makes a call to a method", () => {
|
|
29
|
+
const cls = namekey("TestClass");
|
|
30
|
+
const method = namekey("Method");
|
|
31
|
+
const template = _$createComponent(TestNamespace, {
|
|
32
|
+
get children() {
|
|
33
|
+
return [_$createComponent(ClassDeclaration, {
|
|
34
|
+
name: cls,
|
|
35
|
+
get children() {
|
|
36
|
+
return _$createComponent(Method, {
|
|
37
|
+
name: method,
|
|
38
|
+
children: "return 1;"
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}), _$createIntrinsic("hbr", {}), _$createComponent(InvocationExpression, {
|
|
42
|
+
target: method
|
|
43
|
+
}), ";"];
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
expect(template).toRenderTo(`
|
|
47
|
+
class TestClass
|
|
48
|
+
{
|
|
49
|
+
void Method()
|
|
50
|
+
{
|
|
51
|
+
return 1;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
TestClass.Method();
|
|
55
|
+
`);
|
|
56
|
+
});
|
|
57
|
+
describe("formatting", () => {
|
|
58
|
+
it("doesn't break one long argument", () => {
|
|
59
|
+
const template = _$createComponent(InvocationExpression, {
|
|
60
|
+
target: "Foo",
|
|
61
|
+
args: ["oneLongArgument"]
|
|
62
|
+
});
|
|
63
|
+
expect(template).toRenderTo(`Foo(oneLongArgument)`, {
|
|
64
|
+
printWidth: 10
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
it("breaks multiple arguments", () => {
|
|
68
|
+
const template = _$createComponent(InvocationExpression, {
|
|
69
|
+
target: "Foo",
|
|
70
|
+
args: ["oneLongArgument", "anotherLongArgument"]
|
|
71
|
+
});
|
|
72
|
+
expect(template).toRenderTo(`
|
|
73
|
+
Foo(
|
|
74
|
+
oneLongArgument,
|
|
75
|
+
anotherLongArgument
|
|
76
|
+
)
|
|
77
|
+
`, {
|
|
78
|
+
printWidth: 10
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
it("doesn't break one long type argument", () => {
|
|
82
|
+
const template = _$createComponent(InvocationExpression, {
|
|
83
|
+
target: "Foo",
|
|
84
|
+
typeArgs: ["oneLongArgument"]
|
|
85
|
+
});
|
|
86
|
+
expect(template).toRenderTo(`Foo<oneLongArgument>()`, {
|
|
87
|
+
printWidth: 10
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
it("breaks multiple type arguments", () => {
|
|
91
|
+
const template = _$createComponent(InvocationExpression, {
|
|
92
|
+
target: "Foo",
|
|
93
|
+
typeArgs: ["oneLongArgument", "anotherLongArgument"]
|
|
94
|
+
});
|
|
95
|
+
expect(template).toRenderTo(`
|
|
96
|
+
Foo<
|
|
97
|
+
oneLongArgument,
|
|
98
|
+
anotherLongArgument
|
|
99
|
+
>()
|
|
100
|
+
`, {
|
|
101
|
+
printWidth: 10
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=invocation-expression.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ClassDeclaration","Method","TestNamespace","namekey","describe","expect","it","InvocationExpression","template","_$createComponent","target","toRenderTo","args","typeArgs","cls","method","children","name","_$createIntrinsic","printWidth"],"sources":["../../../../src/components/invocation-expression/invocation-expression.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,gBAAgB;AACzB,SAASC,MAAM;AACf,SAASC,aAAa;AACtB,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,oBAAoB;AAE7BD,EAAE,CAAC,gCAAgC,EAAE,MAAM;EACzC,MAAME,QAAQ,GAAAC,iBAAA,CAAIF,oBAAoB;IAACG,MAAM;EAAA,EAAS;EACtDL,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AAEFL,EAAE,CAAC,6BAA6B,EAAE,MAAM;EACtC,MAAME,QAAQ,GAAAC,iBAAA,CACXF,oBAAoB;IAACG,MAAM;IAAOE,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU;EAAC,EAC5D;EACDP,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CAAC,mBAAmB,CAAC;AAClD,CAAC,CAAC;AAEFL,EAAE,CAAC,mCAAmC,EAAE,MAAM;EAC5C,MAAME,QAAQ,GAAAC,iBAAA,CACXF,oBAAoB;IAACG,MAAM;IAAOG,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK;EAAC,EAC5D;EACDR,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CAAC,iBAAiB,CAAC;AAChD,CAAC,CAAC;AAEFL,EAAE,CAAC,0BAA0B,EAAE,MAAM;EACnC,MAAMQ,GAAG,GAAGX,OAAO,CAAC,WAAW,CAAC;EAChC,MAAMY,MAAM,GAAGZ,OAAO,CAAC,QAAQ,CAAC;EAChC,MAAMK,QAAQ,GAAAC,iBAAA,CACXP,aAAa;IAAA,IAAAc,SAAA;MAAA,QAAAP,iBAAA,CACXT,gBAAgB;QAACiB,IAAI,EAAEH,GAAG;QAAA,IAAAE,SAAA;UAAA,OAAAP,iBAAA,CACxBR,MAAM;YAACgB,IAAI,EAAEF,MAAM;YAAAC,QAAA;UAAA;QAAA;MAAA,IAAAE,iBAAA,aAAAT,iBAAA,CAGrBF,oBAAoB;QAACG,MAAM,EAAEK;MAAM;IAAA;EAAA,EAEvC;EACDV,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFP,QAAQ,CAAC,YAAY,EAAE,MAAM;EAC3BE,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAME,QAAQ,GAAAC,iBAAA,CACXF,oBAAoB;MAACG,MAAM;MAAOE,IAAI,EAAE,CAAC,iBAAiB;IAAC,EAC7D;IACDP,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CAAC,sBAAsB,EAAE;MAAEQ,UAAU,EAAE;IAAG,CAAC,CAAC;EACzE,CAAC,CAAC;EAEFb,EAAE,CAAC,2BAA2B,EAAE,MAAM;IACpC,MAAME,QAAQ,GAAAC,iBAAA,CACXF,oBAAoB;MACnBG,MAAM;MACNE,IAAI,EAAE,CAAC,iBAAiB,EAAE,qBAAqB;IAAC,EAEnD;IACDP,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CACzB;AACN;AACA;AACA;AACA;AACA,OAAO,EACD;MAAEQ,UAAU,EAAE;IAAG,CACnB,CAAC;EACH,CAAC,CAAC;EAEFb,EAAE,CAAC,sCAAsC,EAAE,MAAM;IAC/C,MAAME,QAAQ,GAAAC,iBAAA,CACXF,oBAAoB;MAACG,MAAM;MAAOG,QAAQ,EAAE,CAAC,iBAAiB;IAAC,EACjE;IACDR,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CAAC,wBAAwB,EAAE;MAAEQ,UAAU,EAAE;IAAG,CAAC,CAAC;EAC3E,CAAC,CAAC;EAEFb,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACzC,MAAME,QAAQ,GAAAC,iBAAA,CACXF,oBAAoB;MACnBG,MAAM;MACNG,QAAQ,EAAE,CAAC,iBAAiB,EAAE,qBAAqB;IAAC,EAEvD;IACDR,MAAM,CAACG,QAAQ,CAAC,CAACG,UAAU,CACzB;AACN;AACA;AACA;AACA;AACA,OAAO,EACD;MAAEQ,UAAU,EAAE;IAAG,CACnB,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Children, Namekey,
|
|
1
|
+
import { Children, Namekey, Refkey } from "@alloy-js/core";
|
|
2
2
|
export interface ParameterProps {
|
|
3
3
|
name: string | Namekey;
|
|
4
4
|
type: Children;
|
|
@@ -7,7 +7,6 @@ export interface ParameterProps {
|
|
|
7
7
|
/** Default value for the parameter */
|
|
8
8
|
default?: Children;
|
|
9
9
|
refkey?: Refkey;
|
|
10
|
-
symbol?: OutputSymbol;
|
|
11
10
|
}
|
|
12
11
|
/** Define a parameter to be used in class or interface method. */
|
|
13
12
|
export declare function Parameter(props: ParameterProps): Children;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../../src/components/parameters/parameters.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../../src/components/parameters/parameters.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,YAgB9C;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;CAC1C;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YAehD"}
|
|
@@ -7,7 +7,8 @@ export function Parameter(props) {
|
|
|
7
7
|
const TypeSlot = createSymbolSlot();
|
|
8
8
|
const memberSymbol = createParameterSymbol(props.name, {
|
|
9
9
|
refkeys: props.refkey,
|
|
10
|
-
type: TypeSlot.firstSymbol
|
|
10
|
+
type: TypeSlot.firstSymbol,
|
|
11
|
+
isNullable: props.optional
|
|
11
12
|
});
|
|
12
13
|
return _$createComponent(Declaration, {
|
|
13
14
|
symbol: memberSymbol,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["code","createSymbolSlot","Declaration","For","Indent","createParameterSymbol","Name","Parameter","props","TypeSlot","memberSymbol","name","refkeys","refkey","type","firstSymbol","_$createComponent","symbol","children","_$memo","
|
|
1
|
+
{"version":3,"names":["code","createSymbolSlot","Declaration","For","Indent","createParameterSymbol","Name","Parameter","props","TypeSlot","memberSymbol","name","refkeys","refkey","type","firstSymbol","isNullable","optional","_$createComponent","symbol","children","_$memo","default","Parameters","_$createIntrinsic","parameters","softline","each","joiner","param"],"sources":["../../../../src/components/parameters/parameters.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAEEA,IAAI,EACJC,gBAAgB,EAChBC,WAAW,EACXC,GAAG,EACHC,MAAM,QAGD,gBAAgB;AACvB,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,IAAI;AAab;AACA,OAAO,SAASC,SAASA,CAACC,KAAqB,EAAE;EAC/C,MAAMC,QAAQ,GAAGR,gBAAgB,CAAC,CAAC;EAEnC,MAAMS,YAAY,GAAGL,qBAAqB,CAACG,KAAK,CAACG,IAAI,EAAE;IACrDC,OAAO,EAAEJ,KAAK,CAACK,MAAM;IACrBC,IAAI,EAAEL,QAAQ,CAACM,WAAW;IAC1BC,UAAU,EAAER,KAAK,CAACS;EACpB,CAAC,CAAC;EAEF,OAAAC,iBAAA,CACGhB,WAAW;IAACiB,MAAM,EAAET,YAAY;IAAA,IAAAU,SAAA;MAAA,QAAAF,iBAAA,CAC9BT,QAAQ;QAAA,IAAAW,SAAA;UAAA,OAAEZ,KAAK,CAACM,IAAI;QAAA;MAAA,IAAAO,MAAA,OACpBb,KAAK,CAACS,QAAQ,GAAG,GAAG,GAAG,EAAE,QAAAC,iBAAA,CAAGZ,IAAI,OAAAe,MAAA,OAChCb,KAAK,CAACc,OAAO,GAAGtB,IAAI,MAAMQ,KAAK,CAACc,OAAO,EAAE,GAAG,EAAE;IAAA;EAAA;AAGrD;AAMA;AACA,OAAO,SAASC,UAAUA,CAACf,KAAsB,EAAE;EACjD,OAAAgB,iBAAA;IAAA,IAAAJ,SAAA;MAAA,QAEK,GAAG,EAAAC,MAAA,OACHA,MAAA,SAAAb,KAAK,CAACiB,UAAU,OAAAP,iBAAA,CACdd,MAAM;QAACsB,QAAQ;QAAA,IAAAN,SAAA;UAAA,OAAAF,iBAAA,CACbf,GAAG;YAAA,IAACwB,IAAIA,CAAA;cAAA,OAAEnB,KAAK,CAACiB,UAAU;YAAA;YAAEG,MAAM,EAAE,IAAI;YAAAR,QAAA,EACrCS,KAAK,IAAAX,iBAAA,CAAMX,SAAS,EAAKsB,KAAK;UAAI;QAAA;MAAA,EAGzC,GAAAL,iBAAA,kBAEA,GAAG;IAAA;EAAA;AAGV","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { ClassDeclaration } from "#components/class/declaration.js";
|
|
3
3
|
import { Method } from "#components/method/method.js";
|
|
4
|
+
import { Property } from "#components/property/property.js";
|
|
4
5
|
import { List, memberRefkey, namekey } from "@alloy-js/core";
|
|
5
6
|
import { expect, it } from "vitest";
|
|
6
7
|
import { TestNamespace } from "../../../test/utils.js";
|
|
@@ -85,4 +86,69 @@ it("members can be referenced", () => {
|
|
|
85
86
|
}
|
|
86
87
|
`);
|
|
87
88
|
});
|
|
89
|
+
it("members can be referenced when the parameter is nullable", () => {
|
|
90
|
+
const propTypeKey = namekey("PropType");
|
|
91
|
+
const propTypePropKey = namekey("Field");
|
|
92
|
+
const classKey = namekey("TestType");
|
|
93
|
+
const propKey = namekey("TestProp");
|
|
94
|
+
const param1Key = namekey("param1");
|
|
95
|
+
expect(_$createComponent(TestNamespace, {
|
|
96
|
+
get children() {
|
|
97
|
+
return _$createComponent(List, {
|
|
98
|
+
get children() {
|
|
99
|
+
return [_$createComponent(ClassDeclaration, {
|
|
100
|
+
name: propTypeKey,
|
|
101
|
+
get children() {
|
|
102
|
+
return _$createComponent(Property, {
|
|
103
|
+
name: propTypePropKey,
|
|
104
|
+
type: "string",
|
|
105
|
+
nullable: true
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}), _$createComponent(ClassDeclaration, {
|
|
109
|
+
name: classKey,
|
|
110
|
+
get children() {
|
|
111
|
+
return _$createComponent(Property, {
|
|
112
|
+
name: propKey,
|
|
113
|
+
type: propTypeKey,
|
|
114
|
+
nullable: true
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}), _$createComponent(ClassDeclaration, {
|
|
118
|
+
name: "Test",
|
|
119
|
+
get children() {
|
|
120
|
+
return _$createComponent(Method, {
|
|
121
|
+
name: "Test",
|
|
122
|
+
parameters: [{
|
|
123
|
+
name: param1Key,
|
|
124
|
+
type: classKey,
|
|
125
|
+
optional: true
|
|
126
|
+
}],
|
|
127
|
+
get children() {
|
|
128
|
+
return ["return ", _$memo(() => memberRefkey(param1Key, propKey, propTypePropKey)), ";"];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
})];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
})).toRenderTo(`
|
|
137
|
+
class PropType
|
|
138
|
+
{
|
|
139
|
+
string? Field { }
|
|
140
|
+
}
|
|
141
|
+
class TestType
|
|
142
|
+
{
|
|
143
|
+
PropType? TestProp { }
|
|
144
|
+
}
|
|
145
|
+
class Test
|
|
146
|
+
{
|
|
147
|
+
void Test(TestType? param1)
|
|
148
|
+
{
|
|
149
|
+
return param1?.TestProp?.Field;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
`);
|
|
153
|
+
});
|
|
88
154
|
//# sourceMappingURL=parameters.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ClassDeclaration","Method","List","memberRefkey","namekey","expect","it","TestNamespace","Wrapper","props","_$createComponent","children","name","param1Key","param2Key","parameters","type","toRenderTo","classKey","methodKey","_$memo"],"sources":["../../../../src/components/parameters/parameters.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,gBAAgB;AACzB,SAASC,MAAM;AACf,SAASC,IAAI,EAAEC,YAAY,EAAEC,OAAO,QAAQ,gBAAgB;AAE5D,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,aAAa;AAEtB,MAAMC,OAAO,GAAIC,KAA6B,IAAAC,iBAAA,CAC3CH,aAAa;EAAA,IAAAI,SAAA;IAAA,OAAAD,iBAAA,
|
|
1
|
+
{"version":3,"names":["ClassDeclaration","Method","Property","List","memberRefkey","namekey","expect","it","TestNamespace","Wrapper","props","_$createComponent","children","name","param1Key","param2Key","parameters","type","toRenderTo","classKey","methodKey","_$memo","propTypeKey","propTypePropKey","propKey","nullable","optional"],"sources":["../../../../src/components/parameters/parameters.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Children, Refkey } from "@alloy-js/core";
|
|
1
|
+
import { Children, Namekey, Refkey } from "@alloy-js/core";
|
|
2
2
|
import { AccessModifiers } from "../../modifiers.js";
|
|
3
3
|
import { AttributesProp } from "../attributes/attributes.jsx";
|
|
4
4
|
/** Property modifiers. */
|
|
@@ -19,7 +19,7 @@ export interface PropertyModifiers {
|
|
|
19
19
|
}
|
|
20
20
|
/** Properties for {@link Property} component */
|
|
21
21
|
export interface PropertyProps extends AccessModifiers, PropertyModifiers {
|
|
22
|
-
name: string;
|
|
22
|
+
name: Namekey | string;
|
|
23
23
|
refkey?: Refkey;
|
|
24
24
|
/** Property type */
|
|
25
25
|
type: Children;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../src/components/property/property.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,
|
|
1
|
+
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../src/components/property/property.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAMR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG7E,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAcD,gDAAgD;AAChD,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,iBAAiB;IACvE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,IAAI,EAAE,QAAQ,CAAC;IAEf,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,YAqC5C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { Block, code, List, MemberDeclaration, MemberName } from "@alloy-js/core";
|
|
2
|
+
import { Block, code, createSymbolSlot, List, MemberDeclaration, MemberName } from "@alloy-js/core";
|
|
3
3
|
import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../../modifiers.js";
|
|
4
4
|
import { createPropertySymbol } from "../../symbols/factories.js";
|
|
5
5
|
import { AttributeList } from "../attributes/attributes.js";
|
|
@@ -21,8 +21,11 @@ const getModifiers = makeModifiers(["new", "static", "virtual", "sealed", "overr
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
export function Property(props) {
|
|
24
|
+
const TypeSlot = createSymbolSlot();
|
|
24
25
|
const propertySymbol = createPropertySymbol(props.name, {
|
|
25
|
-
refkeys: props.refkey
|
|
26
|
+
refkeys: props.refkey,
|
|
27
|
+
isNullable: props.nullable,
|
|
28
|
+
type: TypeSlot.firstSymbol
|
|
26
29
|
});
|
|
27
30
|
const modifiers = computeModifiersPrefix([getAccessModifier(props), getModifiers(props)]);
|
|
28
31
|
if (props.init && props.set) {
|
|
@@ -41,7 +44,11 @@ export function Property(props) {
|
|
|
41
44
|
return props.attributes;
|
|
42
45
|
},
|
|
43
46
|
endline: true
|
|
44
|
-
}), modifiers, _$
|
|
47
|
+
}), modifiers, _$createComponent(TypeSlot, {
|
|
48
|
+
get children() {
|
|
49
|
+
return props.type;
|
|
50
|
+
}
|
|
51
|
+
}), _$memo(() => props.nullable && "?"), " ", _$createComponent(MemberName, {}), " ", _$createComponent(Block, {
|
|
45
52
|
newline: true,
|
|
46
53
|
inline: true,
|
|
47
54
|
get children() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Block","code","List","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","makeModifiers","createPropertySymbol","AttributeList","DocWhen","getModifiers","Property","props","propertySymbol","name","refkeys","refkey","modifiers","init","set","Error","_$createComponent","symbol","children","doc","attributes","endline","_$memo","
|
|
1
|
+
{"version":3,"names":["Block","code","createSymbolSlot","List","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","makeModifiers","createPropertySymbol","AttributeList","DocWhen","getModifiers","Property","props","TypeSlot","propertySymbol","name","refkeys","refkey","isNullable","nullable","type","firstSymbol","modifiers","init","set","Error","_$createComponent","symbol","children","doc","attributes","endline","_$memo","newline","inline","joiner","get","initializer"],"sources":["../../../../src/components/property/property.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,KAAK,EAELC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,EACJC,iBAAiB,EACjBC,UAAU,QAGL,gBAAgB;AACvB,SAEEC,sBAAsB,EACtBC,iBAAiB,EACjBC,aAAa,QACR,oBAAoB;AAC3B,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,aAAa;AACtB,SAASC,OAAO;;AAEhB;;AAiBA,MAAMC,YAAY,GAAGJ,aAAa,CAAoB,CACpD,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,CACX,CAAC;;AAEF;;AA2DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAMC,QAAQ,GAAGb,gBAAgB,CAAC,CAAC;EAEnC,MAAMc,cAAc,GAAGP,oBAAoB,CAACK,KAAK,CAACG,IAAI,EAAE;IACtDC,OAAO,EAAEJ,KAAK,CAACK,MAAM;IACrBC,UAAU,EAAEN,KAAK,CAACO,QAAQ;IAC1BC,IAAI,EAAEP,QAAQ,CAACQ;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGlB,sBAAsB,CAAC,CACvCC,iBAAiB,CAACO,KAAK,CAAC,EACxBF,YAAY,CAACE,KAAK,CAAC,CACpB,CAAC;EAEF,IAAIA,KAAK,CAACW,IAAI,IAAIX,KAAK,CAACY,GAAG,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,qDAAqDV,IAAI,GAC3D,CAAC;EACH;EACA;EACA,OAAAW,iBAAA,CACGxB,iBAAiB;IAACyB,MAAM,EAAEb,cAAc;IAAA,IAAAc,SAAA;MAAA,QAAAF,iBAAA,CACtCjB,OAAO;QAAA,IAACoB,GAAGA,CAAA;UAAA,OAAEjB,KAAK,CAACiB,GAAG;QAAA;MAAA,IAAAH,iBAAA,CACtBlB,aAAa;QAAA,IAACsB,UAAUA,CAAA;UAAA,OAAElB,KAAK,CAACkB,UAAU;QAAA;QAAEC,OAAO;MAAA,IACnDT,SAAS,EAAAI,iBAAA,CACTb,QAAQ;QAAA,IAAAe,SAAA;UAAA,OAAEhB,KAAK,CAACQ,IAAI;QAAA;MAAA,IAAAY,MAAA,OACpBpB,KAAK,CAACO,QAAQ,IAAI,GAAG,QAAAO,iBAAA,CAAGvB,UAAU,OAAI,GAAG,EAAAuB,iBAAA,CACzC5B,KAAK;QAACmC,OAAO;QAACC,MAAM;QAAA,IAAAN,SAAA;UAAA,OAAAF,iBAAA,CAClBzB,IAAI;YAACkC,MAAM;YAAA,IAAAP,SAAA;cAAA,QAAAI,MAAA,OACTpB,KAAK,CAACwB,GAAG,IAAI,MAAM,GAAAJ,MAAA,OACnBpB,KAAK,CAACY,GAAG,IAAI,MAAM,GAAAQ,MAAA,OACnBpB,KAAK,CAACW,IAAI,IAAI,OAAO;YAAA;UAAA;QAAA;MAAA,IAAAS,MAAA,OAGzBpB,KAAK,CAACyB,WAAW,IAAItC,IAAI,MAAMa,KAAK,CAACyB,WAAW,GAAG;IAAA;EAAA;AAG1D","ignoreList":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { OutputScope, OutputScopeOptions } from "@alloy-js/core";
|
|
2
|
+
import type { CSharpSymbol } from "../symbols/csharp.js";
|
|
2
3
|
import { NamespaceSymbol } from "../symbols/namespace.js";
|
|
3
4
|
export declare class CSharpScope extends OutputScope {
|
|
4
5
|
#private;
|
|
5
6
|
constructor(name: string, parent: CSharpScope | undefined, options?: OutputScopeOptions);
|
|
6
7
|
get enclosingNamespace(): NamespaceSymbol | undefined;
|
|
8
|
+
get ownerSymbol(): CSharpSymbol | undefined;
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=csharp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/scopes/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,qBAAa,WAAY,SAAQ,WAAW;;gBAExC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,kBAAkB;IAO9B,IAAI,kBAAkB,gCAErB;CACF"}
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/scopes/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,qBAAa,WAAY,SAAQ,WAAW;;gBAExC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,kBAAkB;IAO9B,IAAI,kBAAkB,gCAErB;IAED,IAAI,WAAW,IAAI,YAAY,GAAG,SAAS,CAE1C;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OutputScope","CSharpScope","constructor","name","parent","options","namespaceSymbol","enclosingNamespace"],"sources":["../../../src/scopes/csharp.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAA4B,gBAAgB;
|
|
1
|
+
{"version":3,"names":["OutputScope","CSharpScope","constructor","name","parent","options","namespaceSymbol","enclosingNamespace","ownerSymbol"],"sources":["../../../src/scopes/csharp.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAA4B,gBAAgB;AAIhE,OAAO,MAAMC,WAAW,SAASD,WAAW,CAAC;EAC3CE,WAAWA,CACTC,IAAY,EACZC,MAA+B,EAC/BC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,eAAe,GAAGF,MAAM,EAAEG,kBAAkB;EACpD;EAEA,CAACD,eAAe;EAChB,IAAIC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC,CAACD,eAAe;EAC9B;EAEA,IAAIE,WAAWA,CAAA,EAA6B;IAC1C,OAAO,KAAK,CAACA,WAAW;EAC1B;AACF","ignoreList":[]}
|
|
@@ -14,6 +14,10 @@ export interface CSharpSymbolOptions extends OutputSymbolOptions {
|
|
|
14
14
|
isSealed?: boolean;
|
|
15
15
|
isExtern?: boolean;
|
|
16
16
|
isReadOnly?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the value held by this symbol could be null.
|
|
19
|
+
*/
|
|
20
|
+
isNullable?: boolean;
|
|
17
21
|
}
|
|
18
22
|
export type CSharpSymbolKinds = "symbol" | "named-type" | "method" | "field" | "property" | "namespace" | "event";
|
|
19
23
|
/**
|
|
@@ -70,6 +74,13 @@ export declare class CSharpSymbol extends OutputSymbol {
|
|
|
70
74
|
*/
|
|
71
75
|
get isReadOnly(): boolean;
|
|
72
76
|
set isReadOnly(value: boolean);
|
|
77
|
+
/**
|
|
78
|
+
* Whether this symbol might contain null. True if this symbol has a
|
|
79
|
+
* `typeSymbol` and that symbol is nullable, or else when this symbol has the
|
|
80
|
+
* `nullable` option set.
|
|
81
|
+
*/
|
|
82
|
+
get isNullable(): boolean;
|
|
83
|
+
set isNullable(value: boolean);
|
|
73
84
|
}
|
|
74
85
|
export declare function accessibilityFromProps(props: AccessModifiers): "public" | "protected" | "private" | "internal";
|
|
75
86
|
export declare function nonAccessibilityFromProps(props: NonAccessModifiers): CSharpSymbolOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/symbols/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,WAAW,EACX,YAAY,EACZ,mBAAmB,EAMpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AACZ;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAC5C,SAAgB,UAAU,EAAE,iBAAiB,CAAY;gBAGvD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,GAAE,mBAAwB;
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/symbols/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,WAAW,EACX,YAAY,EACZ,mBAAmB,EAMpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AACZ;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAC5C,SAAgB,UAAU,EAAE,iBAAiB,CAAY;gBAGvD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,GAAE,mBAAwB;IAenC,IAAI,kBAAkB,IAAI,eAAe,GAAG,SAAS,CA4BpD;IAGD,IAAI,aAAa,IAKQ,qBAAqB,GAAG,SAAS,CAFzD;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,EASzD;IAED,IAAI;IAyBJ;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAGvB;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAS3B;IAID;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAGD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAGD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAKD;;;;OAIG;IACH,IAAI,UAAU,IASQ,OAAO,CAF5B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;CACF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,mDAQ5D;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CAUrB"}
|
|
@@ -22,6 +22,7 @@ export class CSharpSymbol extends OutputSymbol {
|
|
|
22
22
|
this.#isSealed = options.isSealed ?? false;
|
|
23
23
|
this.#isExtern = options.isExtern ?? false;
|
|
24
24
|
this.#isReadOnly = options.isReadOnly ?? false;
|
|
25
|
+
this.#isNullable = options.isNullable; // undefined means unset, here.
|
|
25
26
|
}
|
|
26
27
|
get enclosingNamespace() {
|
|
27
28
|
if (this.spaces.length === 0) {
|
|
@@ -200,6 +201,28 @@ export class CSharpSymbol extends OutputSymbol {
|
|
|
200
201
|
trigger(this, TriggerOpTypes.SET, "isReadOnly", value, old);
|
|
201
202
|
}
|
|
202
203
|
#isReadOnly = false;
|
|
204
|
+
#isNullable = undefined;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Whether this symbol might contain null. True if this symbol has a
|
|
208
|
+
* `typeSymbol` and that symbol is nullable, or else when this symbol has the
|
|
209
|
+
* `nullable` option set.
|
|
210
|
+
*/
|
|
211
|
+
get isNullable() {
|
|
212
|
+
if (this.hasTypeSymbol && this.#isNullable === undefined) {
|
|
213
|
+
return this.type.isNullable;
|
|
214
|
+
}
|
|
215
|
+
track(this, TrackOpTypes.GET, "isNullable");
|
|
216
|
+
return !!this.#isNullable;
|
|
217
|
+
}
|
|
218
|
+
set isNullable(value) {
|
|
219
|
+
const old = this.#isNullable;
|
|
220
|
+
if (old === value) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
this.#isNullable = value;
|
|
224
|
+
trigger(this, TriggerOpTypes.SET, "isNullable", value, old);
|
|
225
|
+
}
|
|
203
226
|
}
|
|
204
227
|
export function accessibilityFromProps(props) {
|
|
205
228
|
for (const key of ["public", "internal", "protected", "private"]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OutputDeclarationSpace","OutputMemberSpace","OutputSymbol","track","TrackOpTypes","trigger","TriggerOpTypes","watch","CSharpSymbol","symbolKind","constructor","name","spaces","options","accessibility","isAbstract","isVirtual","isStatic","isOverride","isSealed","isExtern","isReadOnly","enclosingNamespace","length","undefined","firstSpace","symbol","scope","Error","GET","value","old","SET","copy","getCopyOptions","initializeCopy","newAccessibility","accessibilityFromProps","props","key","nonAccessibilityFromProps","override","abstract","virtual","static","sealed","extern","readOnly"],"sources":["../../../src/symbols/csharp.ts"],"sourcesContent":[null],"mappings":"AAAA,SAEEA,sBAAsB,EACtBC,iBAAiB,EAEjBC,YAAY,EAEZC,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,EACdC,KAAK,QACA,gBAAgB;
|
|
1
|
+
{"version":3,"names":["OutputDeclarationSpace","OutputMemberSpace","OutputSymbol","track","TrackOpTypes","trigger","TriggerOpTypes","watch","CSharpSymbol","symbolKind","constructor","name","spaces","options","accessibility","isAbstract","isVirtual","isStatic","isOverride","isSealed","isExtern","isReadOnly","isNullable","enclosingNamespace","length","undefined","firstSpace","symbol","scope","Error","GET","value","old","SET","copy","getCopyOptions","initializeCopy","newAccessibility","hasTypeSymbol","type","accessibilityFromProps","props","key","nonAccessibilityFromProps","override","abstract","virtual","static","sealed","extern","readOnly"],"sources":["../../../src/symbols/csharp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBAgBlC;AAED,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;IAC3E,KAAK,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;CAClD;AACD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,gCAAqC,gBAiB/C;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA0BlC;AASD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,mBAAmB,mBAM9B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,mBAOjD;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,yBAA8B,gBAsBxC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,OAAO,EAAE,mBAAmB,gBAU7B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA6BlC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useBinder } from "@alloy-js/core";
|
|
1
|
+
import { onCleanup, useBinder } from "@alloy-js/core";
|
|
2
2
|
import { getGlobalNamespace } from "../contexts/global-namespace.js";
|
|
3
3
|
import { useCSharpNamePolicy } from "../name-policy.js";
|
|
4
4
|
import { CSharpClassScope } from "../scopes/class.js";
|
|
@@ -41,9 +41,15 @@ export function createFieldSymbol(originalName, options = {}) {
|
|
|
41
41
|
}
|
|
42
42
|
return new CSharpSymbol(originalName, scope.members, withNamePolicy(options, nameElement));
|
|
43
43
|
}
|
|
44
|
+
function withCleanup(sym) {
|
|
45
|
+
onCleanup(() => {
|
|
46
|
+
sym.delete();
|
|
47
|
+
});
|
|
48
|
+
return sym;
|
|
49
|
+
}
|
|
44
50
|
export function createNamedTypeSymbol(name, kind, options) {
|
|
45
51
|
const scope = useNamedTypeScope();
|
|
46
|
-
return new NamedTypeSymbol(name, scope.ownerSymbol.members, kind, options);
|
|
52
|
+
return withCleanup(new NamedTypeSymbol(name, scope.ownerSymbol.members, kind, options));
|
|
47
53
|
}
|
|
48
54
|
export function createNamespaceSymbol(name) {
|
|
49
55
|
const scope = useEnclosingNamespaceScope();
|
|
@@ -51,18 +57,18 @@ export function createNamespaceSymbol(name) {
|
|
|
51
57
|
if (nsSymbol.members.symbolNames.has(name)) {
|
|
52
58
|
return nsSymbol.members.symbolNames.get(name);
|
|
53
59
|
}
|
|
54
|
-
return new NamespaceSymbol(name, nsSymbol);
|
|
60
|
+
return withCleanup(new NamespaceSymbol(name, nsSymbol));
|
|
55
61
|
}
|
|
56
62
|
export function createMethodSymbol(originalName, options = {}) {
|
|
57
63
|
const scope = useNamedTypeScope();
|
|
58
64
|
if (scope.ownerSymbol.typeKind !== "class" && scope.ownerSymbol.typeKind !== "interface" && scope.ownerSymbol.typeKind !== "struct") {
|
|
59
65
|
throw new Error(`Can't define a method outside of a class, interface, or struct.`);
|
|
60
66
|
}
|
|
61
|
-
return new MethodSymbol(originalName, scope.members, options.methodKind ?? "ordinary", withNamePolicy(options, "class-method"));
|
|
67
|
+
return withCleanup(new MethodSymbol(originalName, scope.members, options.methodKind ?? "ordinary", withNamePolicy(options, "class-method")));
|
|
62
68
|
}
|
|
63
69
|
export function createPropertySymbol(name, options) {
|
|
64
70
|
const scope = useNamedTypeScope();
|
|
65
|
-
return new CSharpSymbol(name, scope.members, withNamePolicy(options, "class-property"));
|
|
71
|
+
return withCleanup(new CSharpSymbol(name, scope.members, withNamePolicy(options, "class-property")));
|
|
66
72
|
}
|
|
67
73
|
export function createVariableSymbol(originalName, options = {}) {
|
|
68
74
|
let scope = useCSharpScope();
|
|
@@ -76,7 +82,7 @@ export function createVariableSymbol(originalName, options = {}) {
|
|
|
76
82
|
if (!(scope instanceof CSharpLexicalScope)) {
|
|
77
83
|
throw new Error(`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
|
|
78
84
|
}
|
|
79
|
-
return new CSharpSymbol(originalName, scope.localVariables, withNamePolicy(options, "variable"));
|
|
85
|
+
return withCleanup(new CSharpSymbol(originalName, scope.localVariables, withNamePolicy(options, "variable")));
|
|
80
86
|
}
|
|
81
87
|
function withNamePolicy(options, elementType) {
|
|
82
88
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useBinder","getGlobalNamespace","useCSharpNamePolicy","CSharpClassScope","useCSharpScope","useNamedTypeScope","CSharpLexicalScope","CSharpMethodScope","CSharpNamedTypeScope","CSharpNamespaceScope","useEnclosingNamespaceScope","CSharpSourceFileScope","CSharpSymbol","MethodSymbol","NamedTypeSymbol","NamespaceSymbol","createParameterSymbol","originalName","options","scope","Error","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createFieldSymbol","nameElement","accessibility","ownerSymbol","typeKind","members","createNamedTypeSymbol","name","kind","createNamespaceSymbol","nsSymbol","symbolNames","has","get","createMethodSymbol","methodKind","createPropertySymbol","createVariableSymbol","binder","parent","constructor","localVariables","elementType","namePolicy","for"],"sources":["../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"names":["onCleanup","useBinder","getGlobalNamespace","useCSharpNamePolicy","CSharpClassScope","useCSharpScope","useNamedTypeScope","CSharpLexicalScope","CSharpMethodScope","CSharpNamedTypeScope","CSharpNamespaceScope","useEnclosingNamespaceScope","CSharpSourceFileScope","CSharpSymbol","MethodSymbol","NamedTypeSymbol","NamespaceSymbol","createParameterSymbol","originalName","options","scope","Error","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createFieldSymbol","nameElement","accessibility","ownerSymbol","typeKind","members","withCleanup","sym","delete","createNamedTypeSymbol","name","kind","createNamespaceSymbol","nsSymbol","symbolNames","has","get","createMethodSymbol","methodKind","createPropertySymbol","createVariableSymbol","binder","parent","constructor","localVariables","elementType","namePolicy","for"],"sources":["../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { OutputSymbol, Refkey } from "@alloy-js/core";
|
|
2
|
-
export declare function ref(refkey: Refkey): () => [
|
|
1
|
+
import { Children, OutputSymbol, Refkey } from "@alloy-js/core";
|
|
2
|
+
export declare function ref(refkey: Refkey): () => [Children, OutputSymbol | undefined];
|
|
3
3
|
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/symbols/reference.
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/symbols/reference.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAQ,YAAY,EAAE,MAAM,EAAW,MAAM,gBAAgB,CAAC;AAW/E,wBAAgB,GAAG,CACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC,CAiD5C"}
|