@tsonic/emitter 0.0.14 → 0.0.16

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.
Files changed (242) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-generator.js +3 -3
  3. package/dist/adapter-generator.js.map +1 -1
  4. package/dist/array.test.d.ts +1 -1
  5. package/dist/array.test.js +18 -17
  6. package/dist/array.test.js.map +1 -1
  7. package/dist/core/attributes.test.js +2 -2
  8. package/dist/core/attributes.test.js.map +1 -1
  9. package/dist/core/imports.d.ts.map +1 -1
  10. package/dist/core/imports.js +7 -12
  11. package/dist/core/imports.js.map +1 -1
  12. package/dist/core/local-types.d.ts.map +1 -1
  13. package/dist/core/local-types.js +12 -0
  14. package/dist/core/local-types.js.map +1 -1
  15. package/dist/core/module-emitter/orchestrator.d.ts.map +1 -1
  16. package/dist/core/module-emitter/orchestrator.js +15 -2
  17. package/dist/core/module-emitter/orchestrator.js.map +1 -1
  18. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  19. package/dist/core/module-emitter/static-container.js +30 -4
  20. package/dist/core/module-emitter/static-container.js.map +1 -1
  21. package/dist/core/module-emitter.test.js +6 -6
  22. package/dist/core/module-map.d.ts.map +1 -1
  23. package/dist/core/module-map.js +42 -0
  24. package/dist/core/module-map.js.map +1 -1
  25. package/dist/core/naming-collisions.d.ts +4 -0
  26. package/dist/core/naming-collisions.d.ts.map +1 -0
  27. package/dist/core/naming-collisions.js +191 -0
  28. package/dist/core/naming-collisions.js.map +1 -0
  29. package/dist/core/type-member-index.d.ts +4 -0
  30. package/dist/core/type-member-index.d.ts.map +1 -0
  31. package/dist/core/type-member-index.js +62 -0
  32. package/dist/core/type-member-index.js.map +1 -0
  33. package/dist/core/unsafe.d.ts +11 -0
  34. package/dist/core/unsafe.d.ts.map +1 -0
  35. package/dist/core/unsafe.js +264 -0
  36. package/dist/core/unsafe.js.map +1 -0
  37. package/dist/emitter-types/context.d.ts +1 -1
  38. package/dist/emitter-types/context.d.ts.map +1 -1
  39. package/dist/emitter-types/context.js +5 -3
  40. package/dist/emitter-types/context.js.map +1 -1
  41. package/dist/emitter-types/core.d.ts +45 -2
  42. package/dist/emitter-types/core.d.ts.map +1 -1
  43. package/dist/emitter-types/fqn.d.ts +0 -7
  44. package/dist/emitter-types/fqn.d.ts.map +1 -1
  45. package/dist/emitter-types/fqn.js +0 -8
  46. package/dist/emitter-types/fqn.js.map +1 -1
  47. package/dist/emitter-types/index.d.ts +1 -1
  48. package/dist/emitter-types/index.d.ts.map +1 -1
  49. package/dist/emitter-types/index.js.map +1 -1
  50. package/dist/emitter.d.ts.map +1 -1
  51. package/dist/emitter.js +12 -1
  52. package/dist/emitter.js.map +1 -1
  53. package/dist/expression-emitter.d.ts.map +1 -1
  54. package/dist/expression-emitter.js +255 -73
  55. package/dist/expression-emitter.js.map +1 -1
  56. package/dist/expressions/access.d.ts +3 -1
  57. package/dist/expressions/access.d.ts.map +1 -1
  58. package/dist/expressions/access.js +144 -50
  59. package/dist/expressions/access.js.map +1 -1
  60. package/dist/expressions/calls.d.ts.map +1 -1
  61. package/dist/expressions/calls.js +266 -88
  62. package/dist/expressions/calls.js.map +1 -1
  63. package/dist/expressions/collections.d.ts.map +1 -1
  64. package/dist/expressions/collections.js +169 -57
  65. package/dist/expressions/collections.js.map +1 -1
  66. package/dist/expressions/functions.d.ts.map +1 -1
  67. package/dist/expressions/functions.js +30 -10
  68. package/dist/expressions/functions.js.map +1 -1
  69. package/dist/expressions/identifiers.d.ts.map +1 -1
  70. package/dist/expressions/identifiers.js +11 -30
  71. package/dist/expressions/identifiers.js.map +1 -1
  72. package/dist/expressions/index.test.js +89 -200
  73. package/dist/expressions/index.test.js.map +1 -1
  74. package/dist/expressions/literals.d.ts +4 -5
  75. package/dist/expressions/literals.d.ts.map +1 -1
  76. package/dist/expressions/literals.js +94 -15
  77. package/dist/expressions/literals.js.map +1 -1
  78. package/dist/expressions/operators.d.ts +0 -4
  79. package/dist/expressions/operators.d.ts.map +1 -1
  80. package/dist/expressions/operators.js +84 -24
  81. package/dist/expressions/operators.js.map +1 -1
  82. package/dist/expressions/other.d.ts.map +1 -1
  83. package/dist/expressions/other.js +21 -3
  84. package/dist/expressions/other.js.map +1 -1
  85. package/dist/expressions/parentheses.d.ts +4 -0
  86. package/dist/expressions/parentheses.d.ts.map +1 -0
  87. package/dist/expressions/parentheses.js +83 -0
  88. package/dist/expressions/parentheses.js.map +1 -0
  89. package/dist/extension-methods.test.d.ts +5 -0
  90. package/dist/extension-methods.test.d.ts.map +1 -0
  91. package/dist/extension-methods.test.js +110 -0
  92. package/dist/extension-methods.test.js.map +1 -0
  93. package/dist/generator-exchange.d.ts.map +1 -1
  94. package/dist/generator-exchange.js +5 -2
  95. package/dist/generator-exchange.js.map +1 -1
  96. package/dist/generator-wrapper.d.ts.map +1 -1
  97. package/dist/generator-wrapper.js +13 -7
  98. package/dist/generator-wrapper.js.map +1 -1
  99. package/dist/generator-wrapper.test.js +12 -12
  100. package/dist/generator-wrapper.test.js.map +1 -1
  101. package/dist/generator.test.js +42 -42
  102. package/dist/generator.test.js.map +1 -1
  103. package/dist/golden-tests/discovery.d.ts +6 -11
  104. package/dist/golden-tests/discovery.d.ts.map +1 -1
  105. package/dist/golden-tests/discovery.js +14 -79
  106. package/dist/golden-tests/discovery.js.map +1 -1
  107. package/dist/golden-tests/index.d.ts +1 -1
  108. package/dist/golden-tests/index.d.ts.map +1 -1
  109. package/dist/golden-tests/index.js.map +1 -1
  110. package/dist/golden-tests/runner.d.ts.map +1 -1
  111. package/dist/golden-tests/runner.js +6 -7
  112. package/dist/golden-tests/runner.js.map +1 -1
  113. package/dist/golden-tests/types.d.ts +0 -7
  114. package/dist/golden-tests/types.d.ts.map +1 -1
  115. package/dist/golden.test.d.ts +3 -10
  116. package/dist/golden.test.d.ts.map +1 -1
  117. package/dist/golden.test.js +8 -24
  118. package/dist/golden.test.js.map +1 -1
  119. package/dist/hierarchical-bindings.test.js +18 -12
  120. package/dist/hierarchical-bindings.test.js.map +1 -1
  121. package/dist/integration.test.js +76 -35
  122. package/dist/integration.test.js.map +1 -1
  123. package/dist/invariants/emitter-globals-subset.test.d.ts +1 -1
  124. package/dist/invariants/emitter-globals-subset.test.js +34 -74
  125. package/dist/invariants/emitter-globals-subset.test.js.map +1 -1
  126. package/dist/invariants/numeric-proof-contract.test.js +3 -3
  127. package/dist/invariants/numeric-proof-contract.test.js.map +1 -1
  128. package/dist/naming-policy.d.ts +5 -0
  129. package/dist/naming-policy.d.ts.map +1 -0
  130. package/dist/naming-policy.js +10 -0
  131. package/dist/naming-policy.js.map +1 -0
  132. package/dist/patterns.d.ts +98 -0
  133. package/dist/patterns.d.ts.map +1 -0
  134. package/dist/patterns.js +366 -0
  135. package/dist/patterns.js.map +1 -0
  136. package/dist/patterns.test.d.ts +15 -0
  137. package/dist/patterns.test.d.ts.map +1 -0
  138. package/dist/patterns.test.js +1262 -0
  139. package/dist/patterns.test.js.map +1 -0
  140. package/dist/specialization/generation.d.ts.map +1 -1
  141. package/dist/specialization/generation.js +2 -2
  142. package/dist/specialization/generation.js.map +1 -1
  143. package/dist/specialization/generic-classes.test.js +1 -1
  144. package/dist/specialization/generic-functions.test.js +6 -6
  145. package/dist/specialization/interfaces.test.js +5 -5
  146. package/dist/specialization/substitution.d.ts.map +1 -1
  147. package/dist/specialization/substitution.js +4 -0
  148. package/dist/specialization/substitution.js.map +1 -1
  149. package/dist/specialization/type-aliases.test.js +6 -6
  150. package/dist/specialization/type-aliases.test.js.map +1 -1
  151. package/dist/statement-emitter.d.ts.map +1 -1
  152. package/dist/statement-emitter.js +1 -1
  153. package/dist/statement-emitter.js.map +1 -1
  154. package/dist/statements/blocks.d.ts.map +1 -1
  155. package/dist/statements/blocks.js +14 -45
  156. package/dist/statements/blocks.js.map +1 -1
  157. package/dist/statements/classes/index.d.ts +1 -1
  158. package/dist/statements/classes/index.d.ts.map +1 -1
  159. package/dist/statements/classes/index.js +1 -1
  160. package/dist/statements/classes/index.js.map +1 -1
  161. package/dist/statements/classes/inline-types.d.ts +1 -1
  162. package/dist/statements/classes/inline-types.d.ts.map +1 -1
  163. package/dist/statements/classes/inline-types.js +15 -5
  164. package/dist/statements/classes/inline-types.js.map +1 -1
  165. package/dist/statements/classes/members/constructors.d.ts.map +1 -1
  166. package/dist/statements/classes/members/constructors.js +40 -14
  167. package/dist/statements/classes/members/constructors.js.map +1 -1
  168. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  169. package/dist/statements/classes/members/methods.js +62 -25
  170. package/dist/statements/classes/members/methods.js.map +1 -1
  171. package/dist/statements/classes/members/orchestrator.d.ts.map +1 -1
  172. package/dist/statements/classes/members/orchestrator.js +1 -3
  173. package/dist/statements/classes/members/orchestrator.js.map +1 -1
  174. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  175. package/dist/statements/classes/members/properties.js +70 -10
  176. package/dist/statements/classes/members/properties.js.map +1 -1
  177. package/dist/statements/classes/parameters.d.ts +43 -1
  178. package/dist/statements/classes/parameters.d.ts.map +1 -1
  179. package/dist/statements/classes/parameters.js +73 -13
  180. package/dist/statements/classes/parameters.js.map +1 -1
  181. package/dist/statements/classes/properties.d.ts.map +1 -1
  182. package/dist/statements/classes/properties.js +6 -7
  183. package/dist/statements/classes/properties.js.map +1 -1
  184. package/dist/statements/classes.d.ts +1 -1
  185. package/dist/statements/classes.d.ts.map +1 -1
  186. package/dist/statements/classes.js +1 -1
  187. package/dist/statements/classes.js.map +1 -1
  188. package/dist/statements/control/conditionals.d.ts.map +1 -1
  189. package/dist/statements/control/conditionals.js +193 -23
  190. package/dist/statements/control/conditionals.js.map +1 -1
  191. package/dist/statements/control/loops.d.ts.map +1 -1
  192. package/dist/statements/control/loops.js +25 -5
  193. package/dist/statements/control/loops.js.map +1 -1
  194. package/dist/statements/declarations/classes.d.ts.map +1 -1
  195. package/dist/statements/declarations/classes.js +150 -12
  196. package/dist/statements/declarations/classes.js.map +1 -1
  197. package/dist/statements/declarations/enums.d.ts.map +1 -1
  198. package/dist/statements/declarations/enums.js +2 -1
  199. package/dist/statements/declarations/enums.js.map +1 -1
  200. package/dist/statements/declarations/functions.d.ts.map +1 -1
  201. package/dist/statements/declarations/functions.js +44 -19
  202. package/dist/statements/declarations/functions.js.map +1 -1
  203. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  204. package/dist/statements/declarations/interfaces.js +71 -10
  205. package/dist/statements/declarations/interfaces.js.map +1 -1
  206. package/dist/statements/declarations/structs.test.js +5 -5
  207. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  208. package/dist/statements/declarations/type-aliases.js +24 -5
  209. package/dist/statements/declarations/type-aliases.js.map +1 -1
  210. package/dist/statements/declarations/variables.d.ts.map +1 -1
  211. package/dist/statements/declarations/variables.js +194 -37
  212. package/dist/statements/declarations/variables.js.map +1 -1
  213. package/dist/statements/index.test.js +7 -5
  214. package/dist/statements/index.test.js.map +1 -1
  215. package/dist/type-assertion.test.js +1 -1
  216. package/dist/types/arrays.d.ts +3 -9
  217. package/dist/types/arrays.d.ts.map +1 -1
  218. package/dist/types/arrays.js +5 -19
  219. package/dist/types/arrays.js.map +1 -1
  220. package/dist/types/emitter.d.ts.map +1 -1
  221. package/dist/types/emitter.js +3 -2
  222. package/dist/types/emitter.js.map +1 -1
  223. package/dist/types/index.test.js +3 -3
  224. package/dist/types/parameters.d.ts +1 -1
  225. package/dist/types/parameters.d.ts.map +1 -1
  226. package/dist/types/parameters.js +77 -8
  227. package/dist/types/parameters.js.map +1 -1
  228. package/dist/types/parameters.test.js +1 -1
  229. package/dist/types/parameters.test.js.map +1 -1
  230. package/dist/types/references.d.ts.map +1 -1
  231. package/dist/types/references.js +126 -55
  232. package/dist/types/references.js.map +1 -1
  233. package/dist/types/references.test.js +46 -106
  234. package/dist/types/references.test.js.map +1 -1
  235. package/dist/types/unions.d.ts.map +1 -1
  236. package/dist/types/unions.js +20 -0
  237. package/dist/types/unions.js.map +1 -1
  238. package/dist/types/unions.test.js +9 -9
  239. package/dist/types.d.ts +1 -1
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/types.js.map +1 -1
  242. package/package.json +3 -3
@@ -5,6 +5,7 @@ import { getIndent, indent, dedent } from "../../types.js";
5
5
  import { emitExpression } from "../../expression-emitter.js";
6
6
  import { emitStatement } from "../../statement-emitter.js";
7
7
  import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
8
+ import { lowerPattern } from "../../patterns.js";
8
9
  /**
9
10
  * Detect if a for-loop has a canonical integer loop counter pattern.
10
11
  *
@@ -184,13 +185,32 @@ export const emitForStatement = (stmt, context) => {
184
185
  export const emitForOfStatement = (stmt, context) => {
185
186
  const ind = getIndent(context);
186
187
  const [exprFrag, exprContext] = emitExpression(stmt.expression, context);
187
- const [bodyCode, bodyContext] = emitStatement(stmt.body, indent(exprContext));
188
188
  // Use foreach in C#, with await prefix for async iteration
189
- const varName = stmt.variable.kind === "identifierPattern"
190
- ? escapeCSharpIdentifier(stmt.variable.name)
191
- : "item";
192
189
  const foreachKeyword = stmt.isAwait ? "await foreach" : "foreach";
193
- const code = `${ind}${foreachKeyword} (var ${varName} in ${exprFrag.text})\n${bodyCode}`;
190
+ if (stmt.variable.kind === "identifierPattern") {
191
+ // Simple identifier: for (const x of items) -> foreach (var x in items)
192
+ const varName = escapeCSharpIdentifier(stmt.variable.name);
193
+ const [bodyCode, bodyContext] = emitStatement(stmt.body, indent(exprContext));
194
+ const code = `${ind}${foreachKeyword} (var ${varName} in ${exprFrag.text})\n${bodyCode}`;
195
+ return [code, dedent(bodyContext)];
196
+ }
197
+ // Complex pattern: for (const [a, b] of items) or for (const {x, y} of items)
198
+ // Generate: foreach (var __item in items) { var a = __item[0]; var b = __item[1]; ...body... }
199
+ const tempVar = "__item";
200
+ const bodyIndent = getIndent(indent(exprContext));
201
+ // Get element type from the expression's inferred type
202
+ const elementType = stmt.expression.inferredType?.kind === "arrayType"
203
+ ? stmt.expression.inferredType.elementType
204
+ : undefined;
205
+ // Lower the pattern to destructuring statements
206
+ const lowerResult = lowerPattern(stmt.variable, tempVar, elementType, bodyIndent, exprContext);
207
+ // Emit the original loop body
208
+ const [bodyCode, bodyContext] = emitStatement(stmt.body, indent(lowerResult.context));
209
+ // Combine: pattern lowering + original body
210
+ const combinedBody = lowerResult.statements.length > 0
211
+ ? `${ind}{\n${lowerResult.statements.join("\n")}\n${bodyCode}\n${ind}}`
212
+ : bodyCode;
213
+ const code = `${ind}${foreachKeyword} (var ${tempVar} in ${exprFrag.text})\n${combinedBody}`;
194
214
  return [code, dedent(bodyContext)];
195
215
  };
196
216
  //# sourceMappingURL=loops.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../src/statements/control/loops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../src/statements/control/loops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/classes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC,EACxD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA2FzB,CAAC"}
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/classes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AASxB;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC,EACxD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA+PzB,CAAC"}
@@ -2,17 +2,98 @@
2
2
  * Class declaration emission
3
3
  */
4
4
  import { getIndent, indent, withClassName, } from "../../types.js";
5
- import { emitExpression } from "../../expression-emitter.js";
6
5
  import { emitType, emitTypeParameters } from "../../type-emitter.js";
7
6
  import { emitClassMember } from "../classes.js";
8
7
  import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
9
8
  import { emitAttributes } from "../../core/attributes.js";
9
+ import { substituteType } from "../../specialization/substitution.js";
10
+ import { statementUsesPointer } from "../../core/unsafe.js";
11
+ import { emitCSharpName } from "../../naming-policy.js";
10
12
  /**
11
13
  * Emit a class declaration
12
14
  */
13
15
  export const emitClassDeclaration = (stmt, context) => {
16
+ const savedScoped = {
17
+ typeParameters: context.typeParameters,
18
+ typeParamConstraints: context.typeParamConstraints,
19
+ typeParameterNameMap: context.typeParameterNameMap,
20
+ returnType: context.returnType,
21
+ localNameMap: context.localNameMap,
22
+ };
14
23
  const ind = getIndent(context);
15
24
  const parts = [];
25
+ const needsUnsafe = statementUsesPointer(stmt);
26
+ const hasTypeParameters = (stmt.typeParameters?.length ?? 0) > 0;
27
+ const staticMembers = hasTypeParameters
28
+ ? stmt.members.filter((m) => (m.kind === "methodDeclaration" || m.kind === "propertyDeclaration") &&
29
+ m.isStatic)
30
+ : [];
31
+ const instanceMembers = hasTypeParameters
32
+ ? stmt.members.filter((m) => m.kind === "constructorDeclaration" ||
33
+ ((m.kind === "methodDeclaration" || m.kind === "propertyDeclaration") &&
34
+ !m.isStatic))
35
+ : stmt.members;
36
+ const synthesizedConstructors = (() => {
37
+ // If the class extends a base class and does not declare a constructor,
38
+ // TypeScript supplies a default constructor that forwards to `super(...args)`.
39
+ // In C#, we must emit an explicit forwarding constructor when the base has
40
+ // required parameters (otherwise the default parameterless constructor breaks).
41
+ const hasOwnCtor = instanceMembers.some((m) => m.kind === "constructorDeclaration");
42
+ if (hasOwnCtor)
43
+ return [];
44
+ if (!stmt.superClass || stmt.superClass.kind !== "referenceType")
45
+ return [];
46
+ if (!context.localTypes)
47
+ return [];
48
+ const baseName = stmt.superClass.name.split(".").pop() ?? stmt.superClass.name;
49
+ const baseInfo = context.localTypes.get(baseName);
50
+ if (!baseInfo || baseInfo.kind !== "class")
51
+ return [];
52
+ const baseCtors = baseInfo.members.filter((m) => m.kind === "constructorDeclaration");
53
+ if (baseCtors.length === 0)
54
+ return [];
55
+ const baseTypeArgs = stmt.superClass.typeArguments ?? [];
56
+ const substitutions = new Map();
57
+ for (let i = 0; i < baseInfo.typeParameters.length; i++) {
58
+ const paramName = baseInfo.typeParameters[i];
59
+ const argType = baseTypeArgs[i];
60
+ if (paramName && argType) {
61
+ substitutions.set(paramName, argType);
62
+ }
63
+ }
64
+ return baseCtors.map((baseCtor) => {
65
+ const forwardedParams = baseCtor.parameters.map((p) => ({
66
+ ...p,
67
+ type: p.type ? substituteType(p.type, substitutions) : undefined,
68
+ }));
69
+ const superArgs = forwardedParams.map((p) => {
70
+ const name = p.pattern.kind === "identifierPattern" ? p.pattern.name : "arg";
71
+ return { kind: "identifier", name };
72
+ });
73
+ return {
74
+ kind: "constructorDeclaration",
75
+ accessibility: baseCtor.accessibility ?? "public",
76
+ parameters: forwardedParams,
77
+ body: {
78
+ kind: "blockStatement",
79
+ statements: [
80
+ {
81
+ kind: "expressionStatement",
82
+ expression: {
83
+ kind: "call",
84
+ callee: { kind: "identifier", name: "super" },
85
+ arguments: superArgs,
86
+ isOptional: false,
87
+ },
88
+ },
89
+ ],
90
+ },
91
+ };
92
+ });
93
+ })();
94
+ const membersToEmit = synthesizedConstructors.length > 0
95
+ ? [...synthesizedConstructors, ...instanceMembers]
96
+ : instanceMembers;
16
97
  // Build type parameter names set FIRST - needed when emitting superclass, implements, and members
17
98
  // Type parameters must be in scope before we emit types that reference them
18
99
  const classTypeParams = new Set([
@@ -27,29 +108,58 @@ export const emitClassDeclaration = (stmt, context) => {
27
108
  // Access modifiers
28
109
  const accessibility = stmt.isExported ? "public" : "internal";
29
110
  parts.push(accessibility);
111
+ if (needsUnsafe)
112
+ parts.push("unsafe");
30
113
  // Emit struct or class based on isStruct flag (escape C# keywords)
31
114
  parts.push(stmt.isStruct ? "struct" : "class");
32
115
  const escapedClassName = escapeCSharpIdentifier(stmt.name);
33
116
  parts.push(escapedClassName);
34
117
  // Type parameters
35
- const [typeParamsStr, whereClauses, typeParamContext] = emitTypeParameters(stmt.typeParameters, currentContext);
118
+ const reservedTypeParamNames = new Set();
119
+ for (const member of membersToEmit) {
120
+ if (member.kind === "methodDeclaration") {
121
+ reservedTypeParamNames.add(emitCSharpName(member.name, "methods", context));
122
+ continue;
123
+ }
124
+ if (member.kind === "propertyDeclaration") {
125
+ const hasAccessors = !!(member.getterBody || member.setterBody);
126
+ const emitsProperty = hasAccessors || member.emitAsAutoProperty === true;
127
+ reservedTypeParamNames.add(emitCSharpName(member.name, emitsProperty ? "properties" : "fields", context));
128
+ }
129
+ }
130
+ const [typeParamsStr, whereClauses, typeParamContext] = emitTypeParameters(stmt.typeParameters, currentContext, reservedTypeParamNames);
36
131
  currentContext = typeParamContext;
37
132
  // Base class and interfaces
38
133
  const heritage = [];
39
134
  // Handle superclass (extends clause)
40
135
  if (stmt.superClass) {
41
- const [superClassFrag, newContext] = emitExpression(stmt.superClass, currentContext);
136
+ const [superClassType, newContext] = emitType(stmt.superClass, currentContext);
42
137
  currentContext = newContext;
43
- heritage.push(superClassFrag.text);
138
+ heritage.push(superClassType);
44
139
  }
45
140
  // Handle interfaces (implements clause)
46
- if (stmt.implements && stmt.implements.length > 0) {
47
- for (const iface of stmt.implements) {
48
- const [ifaceType, newContext] = emitType(iface, currentContext);
49
- currentContext = newContext;
50
- heritage.push(ifaceType);
141
+ // In C#, the heritage list allows exactly one base class + any number of interfaces.
142
+ // We only emit `implements` entries when we can confidently treat them as C# interfaces.
143
+ //
144
+ // This is required for generic constraints (e.g., `where T : IFoo`) to type-check,
145
+ // while avoiding invalid/unsafe emission for nominalized "shape" declarations that
146
+ // are emitted as C# classes (property-only TS interfaces, object-alias classes, etc.).
147
+ const implementedInterfaces = [];
148
+ for (const impl of stmt.implements) {
149
+ if (impl.kind !== "referenceType")
150
+ continue;
151
+ const localInfo = context.localTypes?.get(impl.name);
152
+ const isEmittedAsCSharpInterface = localInfo?.kind === "interface"
153
+ ? localInfo.members.some((m) => m.kind === "methodSignature")
154
+ : impl.resolvedClrType !== undefined;
155
+ if (!isEmittedAsCSharpInterface) {
156
+ continue;
51
157
  }
158
+ const [implType, newContext] = emitType(impl, currentContext);
159
+ currentContext = newContext;
160
+ implementedInterfaces.push(implType);
52
161
  }
162
+ heritage.push(...implementedInterfaces);
53
163
  const heritageStr = heritage.length > 0 ? ` : ${heritage.join(", ")}` : "";
54
164
  const whereClause = whereClauses.length > 0
55
165
  ? `\n${ind} ${whereClauses.join(`\n${ind} `)}`
@@ -64,7 +174,7 @@ export const emitClassDeclaration = (stmt, context) => {
64
174
  // typeParameters is inherited from currentContext via baseContext
65
175
  };
66
176
  const members = [];
67
- for (const member of stmt.members) {
177
+ for (const member of membersToEmit) {
68
178
  const [memberCode, newContext] = emitClassMember(member, bodyContext);
69
179
  members.push(memberCode);
70
180
  currentContext = newContext;
@@ -76,7 +186,35 @@ export const emitClassDeclaration = (stmt, context) => {
76
186
  const memberCode = members.join("\n\n");
77
187
  // Build final code with attributes (if any)
78
188
  const attrPrefix = attributesCode ? attributesCode + "\n" : "";
79
- const code = `${attrPrefix}${ind}${signature}${typeParamsStr}${heritageStr}${whereClause}\n${ind}{\n${memberCode}\n${ind}}`;
80
- return [code, currentContext];
189
+ const mainClassCode = `${attrPrefix}${ind}${signature}${typeParamsStr}${heritageStr}${whereClause}\n${ind}{\n${memberCode}\n${ind}}`;
190
+ // TS allows static members on generic classes, but C# requires selecting a concrete arity.
191
+ // Emit static members into a non-generic companion static class (same name, different arity).
192
+ if (staticMembers.length > 0) {
193
+ const staticClassParts = [];
194
+ staticClassParts.push(accessibility, "static");
195
+ if (needsUnsafe)
196
+ staticClassParts.push("unsafe");
197
+ staticClassParts.push("class", escapedClassName);
198
+ const companionBaseContext = withClassName(indent(context), escapedClassName);
199
+ const companionBodyContext = {
200
+ ...companionBaseContext,
201
+ hasSuperClass: undefined,
202
+ // IMPORTANT: do not introduce the generic class type parameters into this scope
203
+ };
204
+ const staticMemberCodes = [];
205
+ let companionContext = companionBodyContext;
206
+ for (const member of staticMembers) {
207
+ const [memberCode, newContext] = emitClassMember(member, companionContext);
208
+ staticMemberCodes.push(memberCode);
209
+ companionContext = newContext;
210
+ }
211
+ const staticSignature = staticClassParts.join(" ");
212
+ const staticBody = staticMemberCodes.join("\n\n");
213
+ const staticClassCode = `${ind}${staticSignature}\n${ind}{\n${staticBody}\n${ind}}`;
214
+ const code = `${staticClassCode}\n${mainClassCode}`;
215
+ return [code, { ...currentContext, ...savedScoped }];
216
+ }
217
+ const code = mainClassCode;
218
+ return [code, { ...currentContext, ...savedScoped }];
81
219
  };
82
220
  //# sourceMappingURL=classes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../../src/statements/declarations/classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../../src/statements/declarations/classes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAInE;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoBzB,CAAC"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAKnE;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoBzB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  import { getIndent, indent } from "../../types.js";
5
5
  import { emitExpression } from "../../expression-emitter.js";
6
6
  import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
7
+ import { emitCSharpName } from "../../naming-policy.js";
7
8
  /**
8
9
  * Emit an enum declaration
9
10
  */
@@ -15,7 +16,7 @@ export const emitEnumDeclaration = (stmt, context) => {
15
16
  const enumContext = { ...context, isArrayIndex: true };
16
17
  const members = stmt.members
17
18
  .map((member) => {
18
- const escapedName = escapeCSharpIdentifier(member.name);
19
+ const escapedName = emitCSharpName(member.name, "enumMembers", context);
19
20
  if (member.initializer) {
20
21
  const [initFrag] = emitExpression(member.initializer, enumContext);
21
22
  return `${memberInd}${escapedName} = ${initFrag.text}`;
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/statements/declarations/enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAuD,EACvD,OAAuB,EACG,EAAE;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,2EAA2E;IAC3E,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;SACzB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACnE,OAAO,GAAG,SAAS,GAAG,WAAW,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,aAAa,SAAS,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,OAAO,KAAK,GAAG,GAAG,CAAC;IAC9G,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/statements/declarations/enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAuD,EACvD,OAAuB,EACG,EAAE;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,2EAA2E;IAC3E,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;SACzB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACnE,OAAO,GAAG,SAAS,GAAG,WAAW,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,aAAa,SAAS,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,OAAO,KAAK,GAAG,GAAG,CAAC;IAC9G,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,cAAc,EAMf,MAAM,gBAAgB,CAAC;AAYxB;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAyOzB,CAAC"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,cAAc,EAMf,MAAM,gBAAgB,CAAC;AA6BxB;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAiQzB,CAAC"}
@@ -4,27 +4,49 @@
4
4
  import { getIndent, indent, withAsync, withStatic, withScoped, } from "../../types.js";
5
5
  import { emitType, emitTypeParameters } from "../../type-emitter.js";
6
6
  import { emitBlockStatement } from "../blocks.js";
7
- import { emitParameters } from "../classes.js";
7
+ import { emitParametersWithDestructuring, generateParameterDestructuring, } from "../classes.js";
8
8
  import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
9
9
  import { needsBidirectionalSupport, hasGeneratorReturnType, extractGeneratorTypeArgs, } from "../../generator-wrapper.js";
10
10
  import { emitAttributes } from "../../core/attributes.js";
11
+ import { emitCSharpName, getCSharpName } from "../../naming-policy.js";
12
+ const seedLocalNameMapFromParameters = (params, context) => {
13
+ const map = new Map(context.localNameMap ?? []);
14
+ for (const p of params) {
15
+ if (p.pattern.kind === "identifierPattern") {
16
+ map.set(p.pattern.name, escapeCSharpIdentifier(p.pattern.name));
17
+ }
18
+ }
19
+ return { ...context, localNameMap: map };
20
+ };
11
21
  /**
12
22
  * Emit a function declaration
13
23
  */
14
24
  export const emitFunctionDeclaration = (stmt, context) => {
25
+ const savedScoped = {
26
+ typeParameters: context.typeParameters,
27
+ typeParamConstraints: context.typeParamConstraints,
28
+ typeParameterNameMap: context.typeParameterNameMap,
29
+ returnType: context.returnType,
30
+ localNameMap: context.localNameMap,
31
+ };
15
32
  const ind = getIndent(context);
16
33
  const parts = [];
34
+ const csharpBaseName = getCSharpName(stmt.name, "methods", context);
17
35
  // Build type parameter names set FIRST - needed when emitting return type and parameters
18
36
  // Type parameters must be in scope before we emit types that reference them
19
37
  const funcTypeParams = new Set([
20
38
  ...(context.typeParameters ?? []),
21
39
  ...(stmt.typeParameters?.map((tp) => tp.name) ?? []),
22
40
  ]);
23
- // Create context with type parameters in scope for return type and parameter emission
24
- let currentContext = {
41
+ // Create context with type parameters in scope for signature emission
42
+ const signatureContext = {
25
43
  ...context,
26
44
  typeParameters: funcTypeParams,
27
45
  };
46
+ // Emit the <T, U> syntax and where clauses EARLY so nullable union emission
47
+ // can see type parameter constraint kinds when emitting return/parameter types.
48
+ const [typeParamsStr, whereClauses, typeParamContext] = emitTypeParameters(stmt.typeParameters, signatureContext);
49
+ let currentContext = typeParamContext;
28
50
  // Access modifiers
29
51
  const accessibility = stmt.isExported ? "public" : "private";
30
52
  parts.push(accessibility);
@@ -40,12 +62,12 @@ export const emitFunctionDeclaration = (stmt, context) => {
40
62
  if (stmt.isGenerator) {
41
63
  if (isBidirectional) {
42
64
  // Bidirectional generators return the wrapper class
43
- const wrapperName = `${stmt.name}_Generator`;
65
+ const wrapperName = `${csharpBaseName}_Generator`;
44
66
  parts.push(wrapperName);
45
67
  }
46
68
  else {
47
69
  // Unidirectional generators return IEnumerable<exchange> or IAsyncEnumerable<exchange>
48
- const exchangeName = `${stmt.name}_exchange`;
70
+ const exchangeName = `${csharpBaseName}_exchange`;
49
71
  if (stmt.isAsync) {
50
72
  parts.push(`async global::System.Collections.Generic.IAsyncEnumerable<${exchangeName}>`);
51
73
  }
@@ -74,16 +96,13 @@ export const emitFunctionDeclaration = (stmt, context) => {
74
96
  parts.push(stmt.isAsync ? "global::System.Threading.Tasks.Task" : "void");
75
97
  }
76
98
  // Function name
77
- parts.push(escapeCSharpIdentifier(stmt.name));
78
- // Type parameters
79
- const [typeParamsStr, whereClauses, typeParamContext] = emitTypeParameters(stmt.typeParameters, currentContext);
80
- currentContext = typeParamContext;
81
- // Parameters
82
- const params = emitParameters(stmt.parameters, currentContext);
83
- currentContext = params[1];
99
+ parts.push(emitCSharpName(stmt.name, "methods", context));
100
+ // Parameters (with destructuring support)
101
+ const paramsResult = emitParametersWithDestructuring(stmt.parameters, currentContext);
102
+ currentContext = paramsResult.context;
84
103
  // Function body (not a static context - local variables)
85
104
  // Use withScoped to set typeParameters and returnType for nested expressions
86
- const baseBodyContext = withAsync(withStatic(indent(currentContext), false), stmt.isAsync);
105
+ const baseBodyContext = seedLocalNameMapFromParameters(stmt.parameters, withAsync(withStatic(indent(currentContext), false), stmt.isAsync));
87
106
  // Emit body with scoped typeParameters and returnType
88
107
  // funcTypeParams was already built at the start of this function
89
108
  const [bodyCode] = withScoped(baseBodyContext, {
@@ -107,14 +126,20 @@ export const emitFunctionDeclaration = (stmt, context) => {
107
126
  });
108
127
  }
109
128
  }
110
- // Inject initialization code for generators and out parameters
129
+ // Inject initialization code for generators, out parameters, and destructuring
111
130
  let finalBodyCode = bodyCode;
112
131
  const bodyInd = getIndent(baseBodyContext);
113
132
  const injectLines = [];
133
+ // Generate parameter destructuring statements
134
+ if (paramsResult.destructuringParams.length > 0) {
135
+ const [destructuringStmts, newCtx] = generateParameterDestructuring(paramsResult.destructuringParams, bodyInd, currentContext);
136
+ currentContext = newCtx;
137
+ injectLines.push(...destructuringStmts);
138
+ }
114
139
  // Handle bidirectional generators specially
115
140
  if (stmt.isGenerator && isBidirectional) {
116
- const exchangeName = `${stmt.name}_exchange`;
117
- const wrapperName = `${stmt.name}_Generator`;
141
+ const exchangeName = `${csharpBaseName}_exchange`;
142
+ const wrapperName = `${csharpBaseName}_Generator`;
118
143
  const enumerableType = stmt.isAsync
119
144
  ? `global::System.Collections.Generic.IAsyncEnumerable<${exchangeName}>`
120
145
  : `global::System.Collections.Generic.IEnumerable<${exchangeName}>`;
@@ -162,7 +187,7 @@ export const emitFunctionDeclaration = (stmt, context) => {
162
187
  else {
163
188
  // Add generator exchange initialization for unidirectional generators
164
189
  if (stmt.isGenerator) {
165
- const exchangeName = `${stmt.name}_exchange`;
190
+ const exchangeName = `${csharpBaseName}_exchange`;
166
191
  injectLines.push(`${bodyInd}var exchange = new ${exchangeName}();`);
167
192
  }
168
193
  // Add out parameter initializations
@@ -189,8 +214,8 @@ export const emitFunctionDeclaration = (stmt, context) => {
189
214
  : "";
190
215
  // Build final code with attributes (if any)
191
216
  const attrPrefix = attributesCode ? attributesCode + "\n" : "";
192
- const code = `${attrPrefix}${ind}${signature}${typeParamsStr}(${params[0]})${whereClause}\n${finalBodyCode}`;
217
+ const code = `${attrPrefix}${ind}${signature}${typeParamsStr}(${paramsResult.parameterList})${whereClause}\n${finalBodyCode}`;
193
218
  // Return context - no usings tracking needed with global:: FQN approach
194
- return [code, currentContext];
219
+ return [code, { ...currentContext, ...savedScoped }];
195
220
  };
196
221
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AASnE;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EAC5D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA4GzB,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAWnE;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EAC5D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoLzB,CAAC"}