@alloy-js/csharp 0.23.0-dev.7 → 0.23.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/dev/src/components/constructor/constructor.js +69 -9
- package/dist/dev/src/components/constructor/constructor.js.map +1 -1
- package/dist/dev/src/components/constructor/constructor.test.js +117 -0
- package/dist/dev/src/components/constructor/constructor.test.js.map +1 -1
- package/dist/src/components/constructor/constructor.d.ts +32 -0
- package/dist/src/components/constructor/constructor.d.ts.map +1 -1
- package/dist/src/components/constructor/constructor.js +35 -3
- package/dist/src/components/constructor/constructor.js.map +1 -1
- package/dist/src/components/constructor/constructor.test.js +81 -0
- package/dist/src/components/constructor/constructor.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/Constructor.md +17 -11
- package/package.json +1 -1
- package/src/components/constructor/constructor.test.tsx +64 -0
- package/src/components/constructor/constructor.tsx +81 -1
- package/temp/api.json +64 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { MethodScope } from "#components/method-scope.js";
|
|
3
|
-
import { Block, MemberDeclaration, MemberName } from "@alloy-js/core";
|
|
3
|
+
import { Block, For, Indent, MemberDeclaration, MemberName } from "@alloy-js/core";
|
|
4
4
|
import { computeModifiersPrefix, getAccessModifier } from "../../modifiers.js";
|
|
5
5
|
import { useNamedTypeScope } from "../../scopes/contexts.js";
|
|
6
6
|
import { MethodSymbol } from "../../symbols/method.js";
|
|
@@ -12,12 +12,34 @@ import { Parameters } from "../parameters/parameters.js";
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
export function Constructor(props) {
|
|
15
|
+
if (props.baseConstructor && props.thisConstructor) {
|
|
16
|
+
throw new Error("Cannot use both 'baseConstructor' and 'thisConstructor' on the same constructor");
|
|
17
|
+
}
|
|
15
18
|
const scope = useNamedTypeScope();
|
|
16
19
|
const name = scope.ownerSymbol.name;
|
|
17
20
|
const ctorSymbol = new MethodSymbol(name, scope.members, "constructor", {
|
|
18
21
|
refkeys: props.refkey
|
|
19
22
|
});
|
|
20
23
|
const modifiers = computeModifiersPrefix([getAccessModifier(props)]);
|
|
24
|
+
const initializer = props.baseConstructor ? _$createComponent(ConstructorInitializer, {
|
|
25
|
+
keyword: "base",
|
|
26
|
+
get args() {
|
|
27
|
+
return props.baseConstructor;
|
|
28
|
+
}
|
|
29
|
+
}, {
|
|
30
|
+
fileName: import.meta.url,
|
|
31
|
+
lineNumber: 91,
|
|
32
|
+
columnNumber: 7
|
|
33
|
+
}) : props.thisConstructor ? _$createComponent(ConstructorInitializer, {
|
|
34
|
+
keyword: "this",
|
|
35
|
+
get args() {
|
|
36
|
+
return props.thisConstructor;
|
|
37
|
+
}
|
|
38
|
+
}, {
|
|
39
|
+
fileName: import.meta.url,
|
|
40
|
+
lineNumber: 93,
|
|
41
|
+
columnNumber: 7
|
|
42
|
+
}) : null;
|
|
21
43
|
return _$createComponent(MemberDeclaration, {
|
|
22
44
|
symbol: ctorSymbol,
|
|
23
45
|
get children() {
|
|
@@ -29,11 +51,11 @@ export function Constructor(props) {
|
|
|
29
51
|
}
|
|
30
52
|
}, {
|
|
31
53
|
fileName: import.meta.url,
|
|
32
|
-
lineNumber:
|
|
54
|
+
lineNumber: 99,
|
|
33
55
|
columnNumber: 9
|
|
34
56
|
}), modifiers, _$createComponent(MemberName, {}, {
|
|
35
57
|
fileName: import.meta.url,
|
|
36
|
-
lineNumber:
|
|
58
|
+
lineNumber: 101,
|
|
37
59
|
columnNumber: 9
|
|
38
60
|
}), _$createComponent(Parameters, {
|
|
39
61
|
get parameters() {
|
|
@@ -41,28 +63,66 @@ export function Constructor(props) {
|
|
|
41
63
|
}
|
|
42
64
|
}, {
|
|
43
65
|
fileName: import.meta.url,
|
|
44
|
-
lineNumber:
|
|
66
|
+
lineNumber: 102,
|
|
45
67
|
columnNumber: 9
|
|
46
|
-
}), _$createComponent(Block, {
|
|
68
|
+
}), initializer, _$createComponent(Block, {
|
|
47
69
|
newline: true,
|
|
48
70
|
get children() {
|
|
49
71
|
return props.children;
|
|
50
72
|
}
|
|
51
73
|
}, {
|
|
52
74
|
fileName: import.meta.url,
|
|
53
|
-
lineNumber:
|
|
75
|
+
lineNumber: 104,
|
|
54
76
|
columnNumber: 9
|
|
55
77
|
})];
|
|
56
78
|
}
|
|
57
79
|
}, {
|
|
58
80
|
fileName: import.meta.url,
|
|
59
|
-
lineNumber:
|
|
81
|
+
lineNumber: 98,
|
|
60
82
|
columnNumber: 7
|
|
61
83
|
});
|
|
62
84
|
}
|
|
63
85
|
}, {
|
|
64
86
|
fileName: import.meta.url,
|
|
65
|
-
lineNumber:
|
|
87
|
+
lineNumber: 97,
|
|
88
|
+
columnNumber: 5
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function ConstructorInitializer(props) {
|
|
92
|
+
return _$createIntrinsic("group", {
|
|
93
|
+
get children() {
|
|
94
|
+
return [" : ", _$memo(() => props.keyword, false, "props.keyword"), "(", _$createComponent(Indent, {
|
|
95
|
+
nobreak: true,
|
|
96
|
+
get children() {
|
|
97
|
+
return _$createComponent(For, {
|
|
98
|
+
get each() {
|
|
99
|
+
return props.args;
|
|
100
|
+
},
|
|
101
|
+
joiner: ", ",
|
|
102
|
+
children: arg => [_$createIntrinsic("softline", {}, {
|
|
103
|
+
fileName: import.meta.url,
|
|
104
|
+
lineNumber: 124,
|
|
105
|
+
columnNumber: 15
|
|
106
|
+
}), arg]
|
|
107
|
+
}, {
|
|
108
|
+
fileName: import.meta.url,
|
|
109
|
+
lineNumber: 121,
|
|
110
|
+
columnNumber: 9
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}, {
|
|
114
|
+
fileName: import.meta.url,
|
|
115
|
+
lineNumber: 120,
|
|
116
|
+
columnNumber: 7
|
|
117
|
+
}), _$createIntrinsic("softline", {}, {
|
|
118
|
+
fileName: import.meta.url,
|
|
119
|
+
lineNumber: 130,
|
|
120
|
+
columnNumber: 7
|
|
121
|
+
}), ")"];
|
|
122
|
+
}
|
|
123
|
+
}, {
|
|
124
|
+
fileName: import.meta.url,
|
|
125
|
+
lineNumber: 117,
|
|
66
126
|
columnNumber: 5
|
|
67
127
|
});
|
|
68
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MethodScope","Block","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","useNamedTypeScope","MethodSymbol","DocWhen","Parameters","Constructor","props","scope","name","ownerSymbol","ctorSymbol","members","refkeys","refkey","modifiers","_$createComponent","
|
|
1
|
+
{"version":3,"names":["MethodScope","Block","For","Indent","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","useNamedTypeScope","MethodSymbol","DocWhen","Parameters","Constructor","props","baseConstructor","thisConstructor","Error","scope","name","ownerSymbol","ctorSymbol","members","refkeys","refkey","modifiers","initializer","_$createComponent","ConstructorInitializer","keyword","args","fileName","import","meta","url","lineNumber","columnNumber","symbol","children","doc","parameters","newline","_$createIntrinsic","_$memo","nobreak","each","joiner","arg"],"sources":["../../../../../src/components/constructor/constructor.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -108,4 +108,121 @@ it("renders doc comment", () => {
|
|
|
108
108
|
}
|
|
109
109
|
`);
|
|
110
110
|
});
|
|
111
|
+
it("renders : base() initializer", () => {
|
|
112
|
+
expect(_$createComponent(TestNamespace, {
|
|
113
|
+
get children() {
|
|
114
|
+
return _$createComponent(ClassDeclaration, {
|
|
115
|
+
"public": true,
|
|
116
|
+
name: "DerivedClass",
|
|
117
|
+
baseType: "BaseClass",
|
|
118
|
+
get children() {
|
|
119
|
+
return _$createComponent(Constructor, {
|
|
120
|
+
"public": true,
|
|
121
|
+
parameters: [{
|
|
122
|
+
name: "name",
|
|
123
|
+
type: "string"
|
|
124
|
+
}],
|
|
125
|
+
baseConstructor: ["name"],
|
|
126
|
+
children: "// body"
|
|
127
|
+
}, {
|
|
128
|
+
fileName: import.meta.url,
|
|
129
|
+
lineNumber: 68,
|
|
130
|
+
columnNumber: 9
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}, {
|
|
134
|
+
fileName: import.meta.url,
|
|
135
|
+
lineNumber: 67,
|
|
136
|
+
columnNumber: 7
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}, {
|
|
140
|
+
fileName: import.meta.url,
|
|
141
|
+
lineNumber: 66,
|
|
142
|
+
columnNumber: 5
|
|
143
|
+
})).toRenderTo(`
|
|
144
|
+
public class DerivedClass : BaseClass
|
|
145
|
+
{
|
|
146
|
+
public DerivedClass(string name) : base(name)
|
|
147
|
+
{
|
|
148
|
+
// body
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
`);
|
|
152
|
+
});
|
|
153
|
+
it("renders : this() initializer", () => {
|
|
154
|
+
expect(_$createComponent(TestNamespace, {
|
|
155
|
+
get children() {
|
|
156
|
+
return _$createComponent(ClassDeclaration, {
|
|
157
|
+
"public": true,
|
|
158
|
+
name: "MyClass",
|
|
159
|
+
get children() {
|
|
160
|
+
return _$createComponent(Constructor, {
|
|
161
|
+
"public": true,
|
|
162
|
+
thisConstructor: ["0", "0"],
|
|
163
|
+
children: "// body"
|
|
164
|
+
}, {
|
|
165
|
+
fileName: import.meta.url,
|
|
166
|
+
lineNumber: 92,
|
|
167
|
+
columnNumber: 9
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
171
|
+
fileName: import.meta.url,
|
|
172
|
+
lineNumber: 91,
|
|
173
|
+
columnNumber: 7
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}, {
|
|
177
|
+
fileName: import.meta.url,
|
|
178
|
+
lineNumber: 90,
|
|
179
|
+
columnNumber: 5
|
|
180
|
+
})).toRenderTo(`
|
|
181
|
+
public class MyClass
|
|
182
|
+
{
|
|
183
|
+
public MyClass() : this(0, 0)
|
|
184
|
+
{
|
|
185
|
+
// body
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
`);
|
|
189
|
+
});
|
|
190
|
+
it("renders : base() with no arguments", () => {
|
|
191
|
+
expect(_$createComponent(TestNamespace, {
|
|
192
|
+
get children() {
|
|
193
|
+
return _$createComponent(ClassDeclaration, {
|
|
194
|
+
"public": true,
|
|
195
|
+
name: "DerivedClass",
|
|
196
|
+
baseType: "BaseClass",
|
|
197
|
+
get children() {
|
|
198
|
+
return _$createComponent(Constructor, {
|
|
199
|
+
"public": true,
|
|
200
|
+
baseConstructor: [],
|
|
201
|
+
children: "// body"
|
|
202
|
+
}, {
|
|
203
|
+
fileName: import.meta.url,
|
|
204
|
+
lineNumber: 112,
|
|
205
|
+
columnNumber: 9
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}, {
|
|
209
|
+
fileName: import.meta.url,
|
|
210
|
+
lineNumber: 111,
|
|
211
|
+
columnNumber: 7
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}, {
|
|
215
|
+
fileName: import.meta.url,
|
|
216
|
+
lineNumber: 110,
|
|
217
|
+
columnNumber: 5
|
|
218
|
+
})).toRenderTo(`
|
|
219
|
+
public class DerivedClass : BaseClass
|
|
220
|
+
{
|
|
221
|
+
public DerivedClass() : base()
|
|
222
|
+
{
|
|
223
|
+
// body
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
`);
|
|
227
|
+
});
|
|
111
228
|
//# sourceMappingURL=constructor.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["refkey","expect","it","TestNamespace","ClassDeclaration","DocSummary","Constructor","paramNameRefkey","paramSizeRefkey","ctorParams","name","type","_$createComponent","children","parameters","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","toRenderTo","doc"],"sources":["../../../../../src/components/constructor/constructor.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,QAAQ,gBAAgB;AACvC,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,aAAa;AACtB,SAASC,gBAAgB;AACzB,SAASC,UAAU;AACnB,SAASC,WAAW;AAEpBJ,EAAE,CAAC,0CAA0C,EAAE,MAAM;EACnD,MAAMK,eAAe,GAAGP,MAAM,CAAC,CAAC;EAChC,MAAMQ,eAAe,GAAGR,MAAM,CAAC,CAAC;EAEhC,MAAMS,UAAU,GAAG,CACjB;IAAEC,IAAI,EAAE,MAAM;IAAEC,IAAI,EAAE,QAAQ;IAAEX,MAAM,EAAEO;EAAgB,CAAC,EACzD;IAAEG,IAAI,EAAE,MAAM;IAAEC,IAAI,EAAE,KAAK;IAAEX,MAAM,EAAEQ;EAAgB,CAAC,CACvD;EAEDP,MAAM,CAAAW,iBAAA,CACHT,aAAa;IAAA,IAAAU,SAAA;MAAA,OAAAD,iBAAA,CACXR,gBAAgB;QAAA;QAAQM,IAAI;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CAC1BN,WAAW;YAAA;YAAQQ,UAAU,EAAEL,UAAU;YAAA,IAAAI,SAAA;cAAA,QACvCN,eAAe,OAAAQ,iBAAA;gBAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,IACfb,eAAe;YAAA;UAAA;YAAAQ,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA;QAAA;MAAA;QAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;IAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,EAIxB,CAAC,CAACC,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFpB,EAAE,CAAC,qBAAqB,EAAE,MAAM;EAC9BD,MAAM,CAAAW,iBAAA,CACHT,aAAa;IAAA,IAAAU,SAAA;MAAA,OAAAD,iBAAA,CACXR,gBAAgB;QAAA;QAAQM,IAAI;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CAC1BN,WAAW;YAAA;YAAA,IAEViB,GAAGA,CAAA;cAAA,OAAAX,iBAAA,CAAGP,UAAU;gBAAAQ,QAAA;cAAA;gBAAAG,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA;YAAA;YAAAR,QAAA;UAAA;YAAAG,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA;QAAA;MAAA;QAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;IAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,EAMxB,CAAC,CAACC,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["refkey","expect","it","TestNamespace","ClassDeclaration","DocSummary","Constructor","paramNameRefkey","paramSizeRefkey","ctorParams","name","type","_$createComponent","children","parameters","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","toRenderTo","doc","baseType","baseConstructor","thisConstructor"],"sources":["../../../../../src/components/constructor/constructor.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,38 @@ export interface ConstructorProps extends AccessModifiers {
|
|
|
12
12
|
doc?: Children;
|
|
13
13
|
/** Refkey */
|
|
14
14
|
refkey?: Refkey;
|
|
15
|
+
/**
|
|
16
|
+
* Arguments to pass to the base class constructor.
|
|
17
|
+
* Renders `: base(args)` between parameter list and body.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <Constructor public baseConstructor={["name", "42"]}>
|
|
22
|
+
* ```
|
|
23
|
+
* This will produce:
|
|
24
|
+
* ```csharp
|
|
25
|
+
* public MyClass(...) : base(name, 42)
|
|
26
|
+
* {
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
baseConstructor?: Children[];
|
|
31
|
+
/**
|
|
32
|
+
* Arguments to pass to another constructor in the same class.
|
|
33
|
+
* Renders `: this(args)` between parameter list and body.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <Constructor public thisConstructor={["0", "0"]}>
|
|
38
|
+
* ```
|
|
39
|
+
* This will produce:
|
|
40
|
+
* ```csharp
|
|
41
|
+
* public MyClass() : this(0, 0)
|
|
42
|
+
* {
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
thisConstructor?: Children[];
|
|
15
47
|
/** Constructor body */
|
|
16
48
|
children?: Children;
|
|
17
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructor.d.ts","sourceRoot":"","sources":["../../../../src/components/constructor/constructor.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"constructor.d.ts","sourceRoot":"","sources":["../../../../src/components/constructor/constructor.tsx"],"names":[],"mappings":"AACA,OAAO,EAML,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,cAAc,EAAc,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,6BAA6B;IAC7B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAE7B;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAE7B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YAoClD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { MethodScope } from "#components/method-scope.js";
|
|
3
|
-
import { Block, MemberDeclaration, MemberName } from "@alloy-js/core";
|
|
3
|
+
import { Block, For, Indent, MemberDeclaration, MemberName } from "@alloy-js/core";
|
|
4
4
|
import { computeModifiersPrefix, getAccessModifier } from "../../modifiers.js";
|
|
5
5
|
import { useNamedTypeScope } from "../../scopes/contexts.js";
|
|
6
6
|
import { MethodSymbol } from "../../symbols/method.js";
|
|
@@ -12,12 +12,26 @@ import { Parameters } from "../parameters/parameters.js";
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
export function Constructor(props) {
|
|
15
|
+
if (props.baseConstructor && props.thisConstructor) {
|
|
16
|
+
throw new Error("Cannot use both 'baseConstructor' and 'thisConstructor' on the same constructor");
|
|
17
|
+
}
|
|
15
18
|
const scope = useNamedTypeScope();
|
|
16
19
|
const name = scope.ownerSymbol.name;
|
|
17
20
|
const ctorSymbol = new MethodSymbol(name, scope.members, "constructor", {
|
|
18
21
|
refkeys: props.refkey
|
|
19
22
|
});
|
|
20
23
|
const modifiers = computeModifiersPrefix([getAccessModifier(props)]);
|
|
24
|
+
const initializer = props.baseConstructor ? _$createComponent(ConstructorInitializer, {
|
|
25
|
+
keyword: "base",
|
|
26
|
+
get args() {
|
|
27
|
+
return props.baseConstructor;
|
|
28
|
+
}
|
|
29
|
+
}) : props.thisConstructor ? _$createComponent(ConstructorInitializer, {
|
|
30
|
+
keyword: "this",
|
|
31
|
+
get args() {
|
|
32
|
+
return props.thisConstructor;
|
|
33
|
+
}
|
|
34
|
+
}) : null;
|
|
21
35
|
return _$createComponent(MemberDeclaration, {
|
|
22
36
|
symbol: ctorSymbol,
|
|
23
37
|
get children() {
|
|
@@ -31,7 +45,7 @@ export function Constructor(props) {
|
|
|
31
45
|
get parameters() {
|
|
32
46
|
return props.parameters;
|
|
33
47
|
}
|
|
34
|
-
}), _$createComponent(Block, {
|
|
48
|
+
}), initializer, _$createComponent(Block, {
|
|
35
49
|
newline: true,
|
|
36
50
|
get children() {
|
|
37
51
|
return props.children;
|
|
@@ -42,4 +56,22 @@ export function Constructor(props) {
|
|
|
42
56
|
}
|
|
43
57
|
});
|
|
44
58
|
}
|
|
59
|
+
function ConstructorInitializer(props) {
|
|
60
|
+
return _$createIntrinsic("group", {
|
|
61
|
+
get children() {
|
|
62
|
+
return [" : ", _$memo(() => props.keyword), "(", _$createComponent(Indent, {
|
|
63
|
+
nobreak: true,
|
|
64
|
+
get children() {
|
|
65
|
+
return _$createComponent(For, {
|
|
66
|
+
get each() {
|
|
67
|
+
return props.args;
|
|
68
|
+
},
|
|
69
|
+
joiner: ", ",
|
|
70
|
+
children: arg => [_$createIntrinsic("softline", {}), arg]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}), _$createIntrinsic("softline", {}), ")"];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
45
77
|
//# sourceMappingURL=constructor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MethodScope","Block","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","useNamedTypeScope","MethodSymbol","DocWhen","Parameters","Constructor","props","scope","name","ownerSymbol","ctorSymbol","members","refkeys","refkey","modifiers","_$createComponent","symbol","children","doc","parameters","newline"],"sources":["../../../../src/components/constructor/constructor.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,WAAW;AACpB,
|
|
1
|
+
{"version":3,"names":["MethodScope","Block","For","Indent","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","useNamedTypeScope","MethodSymbol","DocWhen","Parameters","Constructor","props","baseConstructor","thisConstructor","Error","scope","name","ownerSymbol","ctorSymbol","members","refkeys","refkey","modifiers","initializer","_$createComponent","ConstructorInitializer","keyword","args","symbol","children","doc","parameters","newline","_$createIntrinsic","_$memo","nobreak","each","joiner","arg"],"sources":["../../../../src/components/constructor/constructor.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,WAAW;AACpB,SACEC,KAAK,EACLC,GAAG,EACHC,MAAM,EACNC,iBAAiB,EACjBC,UAAU,QAEL,gBAAgB;AAEvB,SAEEC,sBAAsB,EACtBC,iBAAiB,QACZ,oBAAoB;AAC3B,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,OAAO;AAChB,SAAyBC,UAAU;;AAEnC;AACA;AACA;;AAiDA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,IAAIA,KAAK,CAACC,eAAe,IAAID,KAAK,CAACE,eAAe,EAAE;IAClD,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEA,MAAMC,KAAK,GAAGT,iBAAiB,CAAC,CAAC;EAEjC,MAAMU,IAAI,GAAGD,KAAK,CAACE,WAAW,CAACD,IAAI;EAEnC,MAAME,UAAU,GAAG,IAAIX,YAAY,CAACS,IAAI,EAAED,KAAK,CAACI,OAAO,EAAE,aAAa,EAAE;IACtEC,OAAO,EAAET,KAAK,CAACU;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGlB,sBAAsB,CAAC,CAACC,iBAAiB,CAACM,KAAK,CAAC,CAAC,CAAC;EAEpE,MAAMY,WAAW,GACfZ,KAAK,CAACC,eAAe,GAAAY,iBAAA,CAClBC,sBAAsB;IAACC,OAAO;IAAA,IAAQC,IAAIA,CAAA;MAAA,OAAEhB,KAAK,CAACC,eAAe;IAAA;EAAA,KAClED,KAAK,CAACE,eAAe,GAAAW,iBAAA,CACpBC,sBAAsB;IAACC,OAAO;IAAA,IAAQC,IAAIA,CAAA;MAAA,OAAEhB,KAAK,CAACE,eAAe;IAAA;EAAA,KAClE,IAAI;EAER,OAAAW,iBAAA,CACGtB,iBAAiB;IAAC0B,MAAM,EAAEV,UAAU;IAAA,IAAAW,SAAA;MAAA,OAAAL,iBAAA,CAClC1B,WAAW;QAAA,IAAA+B,SAAA;UAAA,QAAAL,iBAAA,CACThB,OAAO;YAAA,IAACsB,GAAGA,CAAA;cAAA,OAAEnB,KAAK,CAACmB,GAAG;YAAA;UAAA,IACtBR,SAAS,EAAAE,iBAAA,CACTrB,UAAU,OAAAqB,iBAAA,CACVf,UAAU;YAAA,IAACsB,UAAUA,CAAA;cAAA,OAAEpB,KAAK,CAACoB,UAAU;YAAA;UAAA,IACvCR,WAAW,EAAAC,iBAAA,CACXzB,KAAK;YAACiC,OAAO;YAAA,IAAAH,SAAA;cAAA,OAAElB,KAAK,CAACkB,QAAQ;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA;AAItC;AAOA,SAASJ,sBAAsBA,CAACd,KAAkC,EAAE;EAClE,OAAAsB,iBAAA;IAAA,IAAAJ,SAAA;MAAA,QAEK,KAAK,EAAAK,MAAA,OACLvB,KAAK,CAACe,OAAO,QAAAF,iBAAA,CACbvB,MAAM;QAACkC,OAAO;QAAA,IAAAN,SAAA;UAAA,OAAAL,iBAAA,CACZxB,GAAG;YAAA,IAACoC,IAAIA,CAAA;cAAA,OAAEzB,KAAK,CAACgB,IAAI;YAAA;YAAEU,MAAM,EAAE,IAAI;YAAAR,QAAA,EAC/BS,GAAG,KAAAL,iBAAA,kBAGAK,GAAG;UAEP;QAAA;MAAA,IAAAL,iBAAA;IAAA;EAAA;AAMX","ignoreList":[]}
|
|
@@ -76,4 +76,85 @@ it("renders doc comment", () => {
|
|
|
76
76
|
}
|
|
77
77
|
`);
|
|
78
78
|
});
|
|
79
|
+
it("renders : base() initializer", () => {
|
|
80
|
+
expect(_$createComponent(TestNamespace, {
|
|
81
|
+
get children() {
|
|
82
|
+
return _$createComponent(ClassDeclaration, {
|
|
83
|
+
"public": true,
|
|
84
|
+
name: "DerivedClass",
|
|
85
|
+
baseType: "BaseClass",
|
|
86
|
+
get children() {
|
|
87
|
+
return _$createComponent(Constructor, {
|
|
88
|
+
"public": true,
|
|
89
|
+
parameters: [{
|
|
90
|
+
name: "name",
|
|
91
|
+
type: "string"
|
|
92
|
+
}],
|
|
93
|
+
baseConstructor: ["name"],
|
|
94
|
+
children: "// body"
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
})).toRenderTo(`
|
|
100
|
+
public class DerivedClass : BaseClass
|
|
101
|
+
{
|
|
102
|
+
public DerivedClass(string name) : base(name)
|
|
103
|
+
{
|
|
104
|
+
// body
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
`);
|
|
108
|
+
});
|
|
109
|
+
it("renders : this() initializer", () => {
|
|
110
|
+
expect(_$createComponent(TestNamespace, {
|
|
111
|
+
get children() {
|
|
112
|
+
return _$createComponent(ClassDeclaration, {
|
|
113
|
+
"public": true,
|
|
114
|
+
name: "MyClass",
|
|
115
|
+
get children() {
|
|
116
|
+
return _$createComponent(Constructor, {
|
|
117
|
+
"public": true,
|
|
118
|
+
thisConstructor: ["0", "0"],
|
|
119
|
+
children: "// body"
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
})).toRenderTo(`
|
|
125
|
+
public class MyClass
|
|
126
|
+
{
|
|
127
|
+
public MyClass() : this(0, 0)
|
|
128
|
+
{
|
|
129
|
+
// body
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
`);
|
|
133
|
+
});
|
|
134
|
+
it("renders : base() with no arguments", () => {
|
|
135
|
+
expect(_$createComponent(TestNamespace, {
|
|
136
|
+
get children() {
|
|
137
|
+
return _$createComponent(ClassDeclaration, {
|
|
138
|
+
"public": true,
|
|
139
|
+
name: "DerivedClass",
|
|
140
|
+
baseType: "BaseClass",
|
|
141
|
+
get children() {
|
|
142
|
+
return _$createComponent(Constructor, {
|
|
143
|
+
"public": true,
|
|
144
|
+
baseConstructor: [],
|
|
145
|
+
children: "// body"
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
})).toRenderTo(`
|
|
151
|
+
public class DerivedClass : BaseClass
|
|
152
|
+
{
|
|
153
|
+
public DerivedClass() : base()
|
|
154
|
+
{
|
|
155
|
+
// body
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
`);
|
|
159
|
+
});
|
|
79
160
|
//# sourceMappingURL=constructor.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["refkey","expect","it","TestNamespace","ClassDeclaration","DocSummary","Constructor","paramNameRefkey","paramSizeRefkey","ctorParams","name","type","_$createComponent","children","parameters","_$createIntrinsic","toRenderTo","doc"],"sources":["../../../../src/components/constructor/constructor.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,QAAQ,gBAAgB;AACvC,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,aAAa;AACtB,SAASC,gBAAgB;AACzB,SAASC,UAAU;AACnB,SAASC,WAAW;AAEpBJ,EAAE,CAAC,0CAA0C,EAAE,MAAM;EACnD,MAAMK,eAAe,GAAGP,MAAM,CAAC,CAAC;EAChC,MAAMQ,eAAe,GAAGR,MAAM,CAAC,CAAC;EAEhC,MAAMS,UAAU,GAAG,CACjB;IAAEC,IAAI,EAAE,MAAM;IAAEC,IAAI,EAAE,QAAQ;IAAEX,MAAM,EAAEO;EAAgB,CAAC,EACzD;IAAEG,IAAI,EAAE,MAAM;IAAEC,IAAI,EAAE,KAAK;IAAEX,MAAM,EAAEQ;EAAgB,CAAC,CACvD;EAEDP,MAAM,CAAAW,iBAAA,CACHT,aAAa;IAAA,IAAAU,SAAA;MAAA,OAAAD,iBAAA,CACXR,gBAAgB;QAAA;QAAQM,IAAI;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CAC1BN,WAAW;YAAA;YAAQQ,UAAU,EAAEL,UAAU;YAAA,IAAAI,SAAA;cAAA,QACvCN,eAAe,OAAAQ,iBAAA,aACfP,eAAe;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAIxB,CAAC,CAACQ,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFd,EAAE,CAAC,qBAAqB,EAAE,MAAM;EAC9BD,MAAM,CAAAW,iBAAA,CACHT,aAAa;IAAA,IAAAU,SAAA;MAAA,OAAAD,iBAAA,CACXR,gBAAgB;QAAA;QAAQM,IAAI;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CAC1BN,WAAW;YAAA;YAAA,IAEVW,GAAGA,CAAA;cAAA,OAAAL,iBAAA,CAAGP,UAAU;gBAAAQ,QAAA;cAAA;YAAA;YAAAA,QAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAMxB,CAAC,CAACG,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["refkey","expect","it","TestNamespace","ClassDeclaration","DocSummary","Constructor","paramNameRefkey","paramSizeRefkey","ctorParams","name","type","_$createComponent","children","parameters","_$createIntrinsic","toRenderTo","doc","baseType","baseConstructor","thisConstructor"],"sources":["../../../../src/components/constructor/constructor.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|