@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.
@@ -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: 45,
54
+ lineNumber: 99,
33
55
  columnNumber: 9
34
56
  }), modifiers, _$createComponent(MemberName, {}, {
35
57
  fileName: import.meta.url,
36
- lineNumber: 47,
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: 48,
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: 49,
75
+ lineNumber: 104,
54
76
  columnNumber: 9
55
77
  })];
56
78
  }
57
79
  }, {
58
80
  fileName: import.meta.url,
59
- lineNumber: 44,
81
+ lineNumber: 98,
60
82
  columnNumber: 7
61
83
  });
62
84
  }
63
85
  }, {
64
86
  fileName: import.meta.url,
65
- lineNumber: 43,
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","symbol","children","doc","fileName","import","meta","url","lineNumber","columnNumber","parameters","newline"],"sources":["../../../../../src/components/constructor/constructor.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,WAAW;AACpB,SAASC,KAAK,EAAEC,iBAAiB,EAAEC,UAAU,QAAgB,gBAAgB;AAE7E,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;;AAeA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,KAAK,GAAGN,iBAAiB,CAAC,CAAC;EAEjC,MAAMO,IAAI,GAAGD,KAAK,CAACE,WAAW,CAACD,IAAI;EAEnC,MAAME,UAAU,GAAG,IAAIR,YAAY,CAACM,IAAI,EAAED,KAAK,CAACI,OAAO,EAAE,aAAa,EAAE;IACtEC,OAAO,EAAEN,KAAK,CAACO;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGf,sBAAsB,CAAC,CAACC,iBAAiB,CAACM,KAAK,CAAC,CAAC,CAAC;EAEpE,OAAAS,iBAAA,CACGlB,iBAAiB;IAACmB,MAAM,EAAEN,UAAU;IAAA,IAAAO,SAAA;MAAA,OAAAF,iBAAA,CAClCpB,WAAW;QAAA,IAAAsB,SAAA;UAAA,QAAAF,iBAAA,CACTZ,OAAO;YAAA,IAACe,GAAGA,CAAA;cAAA,OAAEZ,KAAK,CAACY,GAAG;YAAA;UAAA;YAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,IACtBV,SAAS,EAAAC,iBAAA,CACTjB,UAAU;YAAAqB,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,IAAAT,iBAAA,CACVX,UAAU;YAAA,IAACqB,UAAUA,CAAA;cAAA,OAAEnB,KAAK,CAACmB,UAAU;YAAA;UAAA;YAAAN,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,IAAAT,iBAAA,CACvCnB,KAAK;YAAC8B,OAAO;YAAA,IAAAT,SAAA;cAAA,OAAEX,KAAK,CAACW,QAAQ;YAAA;UAAA;YAAAE,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;AAItC","ignoreList":[]}
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,EAAwC,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC9E,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,uBAAuB;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YAsBlD"}
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,SAASC,KAAK,EAAEC,iBAAiB,EAAEC,UAAU,QAAgB,gBAAgB;AAE7E,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;;AAeA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,KAAK,GAAGN,iBAAiB,CAAC,CAAC;EAEjC,MAAMO,IAAI,GAAGD,KAAK,CAACE,WAAW,CAACD,IAAI;EAEnC,MAAME,UAAU,GAAG,IAAIR,YAAY,CAACM,IAAI,EAAED,KAAK,CAACI,OAAO,EAAE,aAAa,EAAE;IACtEC,OAAO,EAAEN,KAAK,CAACO;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGf,sBAAsB,CAAC,CAACC,iBAAiB,CAACM,KAAK,CAAC,CAAC,CAAC;EAEpE,OAAAS,iBAAA,CACGlB,iBAAiB;IAACmB,MAAM,EAAEN,UAAU;IAAA,IAAAO,SAAA;MAAA,OAAAF,iBAAA,CAClCpB,WAAW;QAAA,IAAAsB,SAAA;UAAA,QAAAF,iBAAA,CACTZ,OAAO;YAAA,IAACe,GAAGA,CAAA;cAAA,OAAEZ,KAAK,CAACY,GAAG;YAAA;UAAA,IACtBJ,SAAS,EAAAC,iBAAA,CACTjB,UAAU,OAAAiB,iBAAA,CACVX,UAAU;YAAA,IAACe,UAAUA,CAAA;cAAA,OAAEb,KAAK,CAACa,UAAU;YAAA;UAAA,IAAAJ,iBAAA,CACvCnB,KAAK;YAACwB,OAAO;YAAA,IAAAH,SAAA;cAAA,OAAEX,KAAK,CAACW,QAAQ;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA;AAItC","ignoreList":[]}
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":[]}