@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
@@ -1,20 +1,48 @@
1
1
  /**
2
2
  * Parameter emission for functions and methods
3
+ *
4
+ * Handles both simple identifier patterns and destructuring patterns.
5
+ * For destructuring patterns, generates synthetic parameter names (__param0, etc.)
6
+ * and returns lowering info for the caller to inject destructuring statements.
3
7
  */
4
8
  import { emitExpression } from "../../expression-emitter.js";
5
9
  import { emitParameterType } from "../../type-emitter.js";
6
10
  import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
11
+ import { lowerParameterPattern } from "../../patterns.js";
7
12
  /**
8
13
  * Emit parameters for functions and methods
14
+ *
15
+ * For simple identifier patterns, emits directly as C# parameters.
16
+ * For complex patterns (array/object), generates synthetic parameter names
17
+ * and returns info for destructuring in the function body.
9
18
  */
10
19
  export const emitParameters = (parameters, context) => {
20
+ const result = emitParametersWithDestructuring(parameters, context);
21
+ return [result.parameterList, result.context];
22
+ };
23
+ /**
24
+ * Emit parameters with full destructuring support
25
+ *
26
+ * Returns both the parameter list and info about parameters that need
27
+ * destructuring statements in the function body.
28
+ */
29
+ export const emitParametersWithDestructuring = (parameters, context) => {
11
30
  let currentContext = context;
12
31
  const params = [];
32
+ const destructuringParams = [];
33
+ let syntheticParamIndex = 0;
13
34
  for (const param of parameters) {
14
35
  const isRest = param.isRest;
15
36
  const isOptional = param.isOptional;
37
+ const modifiers = [];
38
+ if (param.isExtensionReceiver) {
39
+ modifiers.push("this");
40
+ }
16
41
  // Use the passing mode from IR (frontend already unwrapped ref<T>/out<T>/in<T>)
17
- const paramModifier = param.passing !== "value" ? param.passing : "";
42
+ if (param.passing !== "value") {
43
+ modifiers.push(param.passing);
44
+ }
45
+ const modifierPrefix = modifiers.length > 0 ? `${modifiers.join(" ")} ` : "";
18
46
  const actualType = param.type;
19
47
  // Parameter type
20
48
  let paramType = "object";
@@ -22,30 +50,62 @@ export const emitParameters = (parameters, context) => {
22
50
  const [typeName, newContext] = emitParameterType(actualType, isOptional, currentContext);
23
51
  currentContext = newContext;
24
52
  paramType = typeName;
25
- // TODO: Rest parameters currently map to Tsonic.JSRuntime.Array<T> to preserve
26
- // JavaScript semantics (reduce, join, etc.). In future, could optimize to
27
- // params T[] and wrap with Array.from() at call sites.
53
+ // Rest parameters use native T[] arrays with params modifier
54
+ }
55
+ // Determine parameter name based on pattern kind
56
+ let paramName;
57
+ const isComplexPattern = param.pattern.kind === "arrayPattern" ||
58
+ param.pattern.kind === "objectPattern";
59
+ if (isComplexPattern) {
60
+ // Generate synthetic name for complex patterns
61
+ paramName = `__param${syntheticParamIndex}`;
62
+ syntheticParamIndex++;
63
+ // Record for destructuring in function body
64
+ destructuringParams.push({
65
+ syntheticName: paramName,
66
+ pattern: param.pattern,
67
+ type: actualType,
68
+ });
28
69
  }
29
- // Parameter name (escape C# keywords)
30
- let paramName = "param";
31
- if (param.pattern.kind === "identifierPattern") {
70
+ else if (param.pattern.kind === "identifierPattern") {
32
71
  paramName = escapeCSharpIdentifier(param.pattern.name);
33
72
  }
34
- // Construct parameter string with modifier if present
35
- let paramStr = paramModifier
36
- ? `${paramModifier} ${paramType} ${paramName}`
37
- : `${paramType} ${paramName}`;
73
+ else {
74
+ paramName = "param";
75
+ }
76
+ // Construct parameter string with modifiers if present
77
+ let paramStr = `${modifierPrefix}${paramType} ${paramName}`;
38
78
  if (param.initializer) {
39
79
  // Emit the default value directly
40
80
  const [defaultExpr, newContext] = emitExpression(param.initializer, currentContext);
41
81
  currentContext = newContext;
42
- paramStr = `${paramType} ${paramName} = ${defaultExpr.text}`;
82
+ paramStr = `${modifierPrefix}${paramType} ${paramName} = ${defaultExpr.text}`;
43
83
  }
44
84
  else if (isOptional && !isRest) {
45
85
  paramStr += " = default";
46
86
  }
47
87
  params.push(paramStr);
48
88
  }
49
- return [params.join(", "), currentContext];
89
+ return {
90
+ parameterList: params.join(", "),
91
+ destructuringParams,
92
+ context: currentContext,
93
+ };
94
+ };
95
+ /**
96
+ * Generate destructuring statements for parameters
97
+ *
98
+ * Call this after emitParametersWithDestructuring to get the statements
99
+ * that should be injected at the start of the function body.
100
+ */
101
+ export const generateParameterDestructuring = (destructuringParams, indent, context) => {
102
+ let currentContext = context;
103
+ const statements = [];
104
+ for (const info of destructuringParams) {
105
+ const result = lowerParameterPattern(info.pattern, info.syntheticName, info.type, indent, currentContext);
106
+ statements.push(...result.statements);
107
+ currentContext = result.context;
108
+ }
109
+ return [statements, currentContext];
50
110
  };
51
111
  //# sourceMappingURL=parameters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/statements/classes/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAkC,EAClC,OAAuB,EACG,EAAE;IAC5B,IAAI,cAAc,GAAG,OAAO,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAEpC,gFAAgF;QAChF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,UAAU,GAAuB,KAAK,CAAC,IAAI,CAAC;QAElD,iBAAiB;QACjB,IAAI,SAAS,GAAG,QAAQ,CAAC;QACzB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,iBAAiB,CAC9C,UAAU,EACV,UAAU,EACV,cAAc,CACf,CAAC;YACF,cAAc,GAAG,UAAU,CAAC;YAC5B,SAAS,GAAG,QAAQ,CAAC;YACrB,+EAA+E;YAC/E,0EAA0E;YAC1E,uDAAuD;QACzD,CAAC;QAED,sCAAsC;QACtC,IAAI,SAAS,GAAG,OAAO,CAAC;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC/C,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,sDAAsD;QACtD,IAAI,QAAQ,GAAG,aAAa;YAC1B,CAAC,CAAC,GAAG,aAAa,IAAI,SAAS,IAAI,SAAS,EAAE;YAC9C,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,kCAAkC;YAClC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,cAAc,CAC9C,KAAK,CAAC,WAAW,EACjB,cAAc,CACf,CAAC;YACF,cAAc,GAAG,UAAU,CAAC;YAC5B,QAAQ,GAAG,GAAG,SAAS,IAAI,SAAS,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/D,CAAC;aAAM,IAAI,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,QAAQ,IAAI,YAAY,CAAC;QAC3B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/statements/classes/parameters.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAM3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACxC,QAAQ,iBAAiB,EACzB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAkFzB,CAAC"}
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAK3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACxC,QAAQ,iBAAiB,EACzB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoFzB,CAAC"}
@@ -3,9 +3,8 @@
3
3
  */
4
4
  import { getIndent } from "../../types.js";
5
5
  import { emitType } from "../../type-emitter.js";
6
- import { capitalize } from "./helpers.js";
7
6
  import { emitParameters } from "./parameters.js";
8
- import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
7
+ import { emitCSharpName, getCSharpName } from "../../naming-policy.js";
9
8
  /**
10
9
  * Emit interface member as C# auto-property (for classes)
11
10
  * Per spec/16-types-and-interfaces.md §2.1
@@ -26,8 +25,8 @@ export const emitInterfaceMemberAsProperty = (member, context) => {
26
25
  // If this is an inline object type, use the extracted class name
27
26
  let typeName;
28
27
  if (member.type.kind === "objectType") {
29
- // Use capitalized property name as the class name
30
- typeName = capitalize(member.name);
28
+ // Use naming policy for generated type names
29
+ typeName = getCSharpName(member.name, "classes", context);
31
30
  }
32
31
  else {
33
32
  const [emittedType, newContext] = emitType(member.type, currentContext);
@@ -43,7 +42,7 @@ export const emitInterfaceMemberAsProperty = (member, context) => {
43
42
  parts.push(typeStr);
44
43
  }
45
44
  // Property name (escape C# keywords)
46
- parts.push(escapeCSharpIdentifier(member.name));
45
+ parts.push(emitCSharpName(member.name, "properties", context));
47
46
  // Getter/setter (readonly is get-only)
48
47
  const accessors = member.isReadonly ? "{ get; }" : "{ get; set; }";
49
48
  return [`${ind}${parts.join(" ")} ${accessors}`, currentContext];
@@ -62,7 +61,7 @@ export const emitInterfaceMemberAsProperty = (member, context) => {
62
61
  parts.push("void");
63
62
  }
64
63
  // Method name (escape C# keywords)
65
- parts.push(escapeCSharpIdentifier(member.name));
64
+ parts.push(emitCSharpName(member.name, "methods", context));
66
65
  // Parameters
67
66
  const params = emitParameters(member.parameters, currentContext);
68
67
  currentContext = params[1];
@@ -73,7 +72,7 @@ export const emitInterfaceMemberAsProperty = (member, context) => {
73
72
  ];
74
73
  }
75
74
  default:
76
- return [`${ind}// TODO: unhandled interface member`, context];
75
+ throw new Error(`Unhandled IR interface member kind: ${String(member.kind)}`);
77
76
  }
78
77
  };
79
78
  //# sourceMappingURL=properties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * Class-related helpers (members, constructors, parameters, interface members)
3
3
  * Main dispatcher - re-exports from classes/ subdirectory
4
4
  */
5
- export { emitClassMember, emitInterfaceMemberAsProperty, extractInlineObjectTypes, emitExtractedType, type ExtractedType, emitParameters, capitalize, } from "./classes/index.js";
5
+ export { emitClassMember, emitInterfaceMemberAsProperty, extractInlineObjectTypes, emitExtractedType, type ExtractedType, emitParameters, emitParametersWithDestructuring, generateParameterDestructuring, type ParameterEmissionResult, capitalize, } from "./classes/index.js";
6
6
  //# sourceMappingURL=classes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/statements/classes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,aAAa,EAClB,cAAc,EACd,UAAU,GACX,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/statements/classes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,aAAa,EAClB,cAAc,EACd,+BAA+B,EAC/B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,UAAU,GACX,MAAM,oBAAoB,CAAC"}
@@ -2,5 +2,5 @@
2
2
  * Class-related helpers (members, constructors, parameters, interface members)
3
3
  * Main dispatcher - re-exports from classes/ subdirectory
4
4
  */
5
- export { emitClassMember, emitInterfaceMemberAsProperty, extractInlineObjectTypes, emitExtractedType, emitParameters, capitalize, } from "./classes/index.js";
5
+ export { emitClassMember, emitInterfaceMemberAsProperty, extractInlineObjectTypes, emitExtractedType, emitParameters, emitParametersWithDestructuring, generateParameterDestructuring, capitalize, } from "./classes/index.js";
6
6
  //# sourceMappingURL=classes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../src/statements/classes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,EAEjB,cAAc,EACd,UAAU,GACX,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../src/statements/classes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,EAEjB,cAAc,EACd,+BAA+B,EAC/B,8BAA8B,EAE9B,UAAU,GACX,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"conditionals.d.ts","sourceRoot":"","sources":["../../../src/statements/control/conditionals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,WAAW,EAAU,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,cAAc,EAKf,MAAM,gBAAgB,CAAC;AAqSxB;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,EACnD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAsSzB,CAAC;AAEF;;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,CAwCzB,CAAC"}
1
+ {"version":3,"file":"conditionals.d.ts","sourceRoot":"","sources":["../../../src/statements/control/conditionals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,WAAW,EAAU,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,cAAc,EAKf,MAAM,gBAAgB,CAAC;AAoaxB;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,EACnD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA0azB,CAAC;AAEF;;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,CA4CzB,CAAC"}
@@ -59,6 +59,49 @@ const tryResolvePredicateGuard = (call, context) => {
59
59
  narrowedMap,
60
60
  };
61
61
  };
62
+ /**
63
+ * Try to extract guard info from an `instanceof` binary expression.
64
+ * Returns guard info if:
65
+ * - condition is `binary` with operator `instanceof`
66
+ * - lhs is identifier
67
+ *
68
+ * Note: rhs is emitted as a type name (C# pattern).
69
+ */
70
+ const tryResolveInstanceofGuard = (condition, context) => {
71
+ if (condition.kind !== "binary")
72
+ return undefined;
73
+ if (condition.operator !== "instanceof")
74
+ return undefined;
75
+ if (condition.left.kind !== "identifier")
76
+ return undefined;
77
+ const originalName = condition.left.name;
78
+ const escapedOrig = escapeCSharpIdentifier(originalName);
79
+ const nextId = (context.tempVarId ?? 0) + 1;
80
+ const ctxWithId = { ...context, tempVarId: nextId };
81
+ // Emit RHS as a type name (e.g., global::System.String)
82
+ const [rhsFrag, ctxAfterRhs] = emitExpression(condition.right, ctxWithId);
83
+ const rhsTypeText = rhsFrag.text;
84
+ // Pattern variable name for the narrowed value.
85
+ const narrowedName = `${originalName}__is_${nextId}`;
86
+ const escapedNarrow = escapeCSharpIdentifier(narrowedName);
87
+ const narrowedMap = new Map(ctxAfterRhs.narrowedBindings ?? []);
88
+ narrowedMap.set(originalName, {
89
+ kind: "rename",
90
+ name: narrowedName,
91
+ type: condition.right.inferredType ?? undefined,
92
+ });
93
+ return {
94
+ originalName,
95
+ rhsTypeText,
96
+ ctxWithId,
97
+ ctxAfterRhs,
98
+ narrowedName,
99
+ escapedOrig,
100
+ escapedNarrow,
101
+ narrowedMap,
102
+ targetType: condition.right.inferredType ?? undefined,
103
+ };
104
+ };
62
105
  /**
63
106
  * Check if an expression represents null or undefined.
64
107
  * Handles both literal form (from null/undefined keyword) and identifier form
@@ -189,27 +232,79 @@ const isBooleanCondition = (expr) => {
189
232
  *
190
233
  * For non-boolean expressions:
191
234
  * - Reference types (objects, arrays): emit `expr != null`
192
- * - Numbers: could emit `expr != 0` (not implemented yet)
193
- * - Strings: could emit `!string.IsNullOrEmpty(expr)` (not implemented yet)
235
+ * - Numbers: emit a JS-truthiness check (0 and NaN are falsy)
236
+ * - Strings: emit `!string.IsNullOrEmpty(expr)`
194
237
  */
195
- const toBooleanCondition = (expr, emittedText) => {
238
+ const toBooleanCondition = (expr, emittedText, context) => {
239
+ // Literal truthiness can be fully resolved without re-evaluating anything.
240
+ if (expr.kind === "literal") {
241
+ if (expr.value === null || expr.value === undefined) {
242
+ return ["false", context];
243
+ }
244
+ if (typeof expr.value === "boolean") {
245
+ return [expr.value ? "true" : "false", context];
246
+ }
247
+ if (typeof expr.value === "number") {
248
+ return [expr.value === 0 ? "false" : "true", context];
249
+ }
250
+ if (typeof expr.value === "string") {
251
+ return [expr.value.length === 0 ? "false" : "true", context];
252
+ }
253
+ }
196
254
  // If already boolean, use as-is
197
255
  if (isBooleanCondition(expr)) {
198
- return emittedText;
256
+ return [emittedText, context];
199
257
  }
200
258
  // For reference types (non-primitive), add != null check
201
259
  const type = expr.inferredType;
202
260
  if (type && type.kind !== "primitiveType") {
203
- return `${emittedText} != null`;
261
+ // Special-case literalType (which behaves like its primitive base) to avoid `0 != null` etc.
262
+ if (type.kind === "literalType") {
263
+ if (typeof type.value === "boolean") {
264
+ return [type.value ? "true" : "false", context];
265
+ }
266
+ if (typeof type.value === "number") {
267
+ return [type.value === 0 ? "false" : "true", context];
268
+ }
269
+ if (typeof type.value === "string") {
270
+ return [type.value.length === 0 ? "false" : "true", context];
271
+ }
272
+ }
273
+ return [`${emittedText} != null`, context];
204
274
  }
205
275
  // Default: assume it's a reference type and add null check
206
276
  // This handles cases where type inference didn't work
207
277
  if (!type) {
208
- return `${emittedText} != null`;
278
+ return [`${emittedText} != null`, context];
209
279
  }
210
280
  // For primitives that are not boolean, just use as-is for now
211
- // TODO: Handle number truthiness (x != 0) and string truthiness
212
- return emittedText;
281
+ if (type.kind === "primitiveType") {
282
+ switch (type.name) {
283
+ case "null":
284
+ case "undefined":
285
+ return ["false", context];
286
+ case "string":
287
+ return [`!string.IsNullOrEmpty(${emittedText})`, context];
288
+ case "int":
289
+ return [`${emittedText} != 0`, context];
290
+ case "char":
291
+ return [`${emittedText} != '\\0'`, context];
292
+ case "number": {
293
+ // JS truthiness for numbers: falsy iff 0 or NaN.
294
+ // Use a pattern var to avoid evaluating the expression twice.
295
+ const nextId = (context.tempVarId ?? 0) + 1;
296
+ const ctxWithId = { ...context, tempVarId: nextId };
297
+ const tmp = `__tsonic_truthy_num_${nextId}`;
298
+ return [
299
+ `(${emittedText} is double ${tmp} && ${tmp} != 0 && !double.IsNaN(${tmp}))`,
300
+ ctxWithId,
301
+ ];
302
+ }
303
+ case "boolean":
304
+ return [emittedText, context];
305
+ }
306
+ }
307
+ return [emittedText, context];
213
308
  };
214
309
  /**
215
310
  * Emit an if statement
@@ -244,6 +339,27 @@ export const emitIfStatement = (stmt, context) => {
244
339
  return [code, finalContext];
245
340
  }
246
341
  }
342
+ // Case A2: if (x instanceof Foo) { ... }
343
+ // C# pattern var narrowing → if (x is Foo x__is_k) { ... } (then-branch sees narrowed x)
344
+ const instanceofGuard = tryResolveInstanceofGuard(stmt.condition, context);
345
+ if (instanceofGuard) {
346
+ const { ctxAfterRhs, escapedOrig, escapedNarrow, rhsTypeText, narrowedMap, } = instanceofGuard;
347
+ const condText = `${escapedOrig} is ${rhsTypeText} ${escapedNarrow}`;
348
+ const thenCtx = {
349
+ ...indent(ctxAfterRhs),
350
+ narrowedBindings: narrowedMap,
351
+ };
352
+ const [thenCode, thenCtxAfter] = emitStatement(stmt.thenStatement, thenCtx);
353
+ let code = `${ind}if (${condText})\n${thenCode}`;
354
+ let finalContext = dedent(thenCtxAfter);
355
+ finalContext = { ...finalContext, narrowedBindings: ctxAfterRhs.narrowedBindings };
356
+ if (stmt.elseStatement) {
357
+ const [elseCode, elseCtx] = emitStatement(stmt.elseStatement, indent(finalContext));
358
+ code += `\n${ind}else\n${elseCode}`;
359
+ finalContext = dedent(elseCtx);
360
+ }
361
+ return [code, finalContext];
362
+ }
247
363
  // Case B: if (!isUser(account)) { ... } else { ... }
248
364
  // Negated guard → for 2-member unions, narrow THEN to OTHER member, ELSE to guard's target
249
365
  if (stmt.condition.kind === "unary" &&
@@ -300,6 +416,28 @@ export const emitIfStatement = (stmt, context) => {
300
416
  return [code, dedent(thenCtx)];
301
417
  }
302
418
  }
419
+ // Case B2: if (!(x instanceof Foo)) { ... } else { ... }
420
+ // Swap branches so ELSE runs under the narrowed pattern var.
421
+ if (stmt.condition.kind === "unary" &&
422
+ stmt.condition.operator === "!" &&
423
+ stmt.elseStatement) {
424
+ const inner = stmt.condition.expression;
425
+ const guard = tryResolveInstanceofGuard(inner, context);
426
+ if (guard) {
427
+ const { ctxAfterRhs, escapedOrig, escapedNarrow, rhsTypeText, narrowedMap, } = guard;
428
+ const condText = `${escapedOrig} is ${rhsTypeText} ${escapedNarrow}`;
429
+ // THEN branch is the original ELSE (narrowed)
430
+ const thenCtx = {
431
+ ...indent(ctxAfterRhs),
432
+ narrowedBindings: narrowedMap,
433
+ };
434
+ const [thenCode, thenCtxAfter] = emitStatement(stmt.elseStatement, thenCtx);
435
+ // ELSE branch is the original THEN (not narrowed)
436
+ const [elseCode, elseCtxAfter] = emitStatement(stmt.thenStatement, indent({ ...dedent(thenCtxAfter), narrowedBindings: ctxAfterRhs.narrowedBindings }));
437
+ const code = `${ind}if (${condText})\n${thenCode}\n${ind}else\n${elseCode}`;
438
+ return [code, dedent(elseCtxAfter)];
439
+ }
440
+ }
303
441
  // Case C: if (isUser(account) && account.foo) { ... }
304
442
  // Logical AND with predicate guard on left → nested-if lowering (preserves short-circuit)
305
443
  if (stmt.condition.kind === "logical" && stmt.condition.operator === "&&") {
@@ -320,9 +458,9 @@ export const emitIfStatement = (stmt, context) => {
320
458
  const castLine = `${outerThenInd}var ${escapedNarrow} = ${escapedOrig}.As${memberN}();`;
321
459
  // Emit RHS condition under narrowed context (TS semantics: rhs sees narrowed x)
322
460
  const [rhsFrag, rhsCtxAfterEmit] = emitExpression(right, outerThenCtx);
323
- const rhsCondText = toBooleanCondition(right, rhsFrag.text);
461
+ const [rhsCondText, rhsCtxAfterCond] = toBooleanCondition(right, rhsFrag.text, rhsCtxAfterEmit);
324
462
  // When RHS true: emit original THEN under narrowed context
325
- const [thenCode, thenCtxAfter] = emitStatement(stmt.thenStatement, indent(rhsCtxAfterEmit));
463
+ const [thenCode, thenCtxAfter] = emitStatement(stmt.thenStatement, indent(rhsCtxAfterCond));
326
464
  // Helper to clear narrowing from context
327
465
  const clearNarrowing = (ctx) => ({
328
466
  ...ctx,
@@ -347,6 +485,35 @@ export const emitIfStatement = (stmt, context) => {
347
485
  return [code, finalContext];
348
486
  }
349
487
  }
488
+ // Case C2: if (x instanceof Foo && x.foo) { ... }
489
+ // Preserve short-circuit and expose narrowed x in RHS and THEN.
490
+ if (left.kind === "binary" && left.operator === "instanceof") {
491
+ const guard = tryResolveInstanceofGuard(left, context);
492
+ if (guard) {
493
+ const { ctxAfterRhs, escapedOrig, escapedNarrow, rhsTypeText, narrowedMap, } = guard;
494
+ const rhsCtx = {
495
+ ...ctxAfterRhs,
496
+ narrowedBindings: narrowedMap,
497
+ };
498
+ const [rhsFrag, rhsCtxAfterEmit] = emitExpression(right, rhsCtx);
499
+ const [rhsCondText, rhsCtxAfterCond] = toBooleanCondition(right, rhsFrag.text, rhsCtxAfterEmit);
500
+ const condText = `(${escapedOrig} is ${rhsTypeText} ${escapedNarrow} && ${rhsCondText})`;
501
+ const thenCtx = {
502
+ ...indent(rhsCtxAfterCond),
503
+ narrowedBindings: narrowedMap,
504
+ };
505
+ const [thenCode, thenCtxAfter] = emitStatement(stmt.thenStatement, thenCtx);
506
+ let code = `${ind}if (${condText})\n${thenCode}`;
507
+ let finalContext = dedent(thenCtxAfter);
508
+ finalContext = { ...finalContext, narrowedBindings: ctxAfterRhs.narrowedBindings };
509
+ if (stmt.elseStatement) {
510
+ const [elseCode, elseCtx] = emitStatement(stmt.elseStatement, indent(finalContext));
511
+ code += `\n${ind}else\n${elseCode}`;
512
+ finalContext = dedent(elseCtx);
513
+ }
514
+ return [code, finalContext];
515
+ }
516
+ }
350
517
  }
351
518
  // Case D: Nullable value type narrowing
352
519
  // if (id !== null) { ... } → id becomes id.Value in then-branch
@@ -363,14 +530,13 @@ export const emitIfStatement = (stmt, context) => {
363
530
  });
364
531
  // Emit condition
365
532
  const [condFrag, condContext] = emitExpression(stmt.condition, context);
366
- // Convert to boolean condition if needed
367
- const condText = toBooleanCondition(stmt.condition, condFrag.text);
533
+ const [condText, condCtxAfterCond] = toBooleanCondition(stmt.condition, condFrag.text, condContext);
368
534
  // Apply narrowing to appropriate branch
369
535
  const thenCtx = {
370
- ...indent(condContext),
536
+ ...indent(condCtxAfterCond),
371
537
  narrowedBindings: narrowsInThen
372
538
  ? narrowedMap
373
- : condContext.narrowedBindings,
539
+ : condCtxAfterCond.narrowedBindings,
374
540
  };
375
541
  const [thenCode, thenCtxAfter] = emitStatement(stmt.thenStatement, thenCtx);
376
542
  let code = `${ind}if (${condText})\n${thenCode}`;
@@ -399,9 +565,8 @@ export const emitIfStatement = (stmt, context) => {
399
565
  }
400
566
  // Standard if-statement emission (no narrowing)
401
567
  const [condFrag, condContext] = emitExpression(stmt.condition, context);
402
- // Convert to boolean condition if needed
403
- const condText = toBooleanCondition(stmt.condition, condFrag.text);
404
- const [thenCode, thenContext] = emitStatement(stmt.thenStatement, indent(condContext));
568
+ const [condText, condCtxAfterCond] = toBooleanCondition(stmt.condition, condFrag.text, condContext);
569
+ const [thenCode, thenContext] = emitStatement(stmt.thenStatement, indent(condCtxAfterCond));
405
570
  let code = `${ind}if (${condText})\n${thenCode}`;
406
571
  let finalContext = dedent(thenContext);
407
572
  if (stmt.elseStatement) {
@@ -435,12 +600,17 @@ export const emitSwitchStatement = (stmt, context) => {
435
600
  cases.push(code);
436
601
  currentContext = newContext;
437
602
  }
438
- // Add break if not already present
439
- const lastStmt = switchCase.statements[switchCase.statements.length - 1];
440
- if (!lastStmt ||
441
- (lastStmt.kind !== "breakStatement" &&
442
- lastStmt.kind !== "returnStatement")) {
443
- cases.push(`${getIndent(stmtContext)}break;`);
603
+ // Emit break only when case has non-empty body that doesn't terminate.
604
+ // Empty bodies represent intentional fall-through labels (TypeScript semantics).
605
+ const hasBody = switchCase.statements.length > 0;
606
+ if (hasBody) {
607
+ const lastStmt = switchCase.statements[switchCase.statements.length - 1];
608
+ const terminates = lastStmt?.kind === "breakStatement" ||
609
+ lastStmt?.kind === "returnStatement" ||
610
+ lastStmt?.kind === "throwStatement";
611
+ if (!terminates) {
612
+ cases.push(`${getIndent(stmtContext)}break;`);
613
+ }
444
614
  }
445
615
  }
446
616
  const code = `${ind}switch (${exprFrag.text})\n${ind}{\n${cases.join("\n")}\n${ind}}`;
@@ -1 +1 @@
1
- {"version":3,"file":"conditionals.js","sourceRoot":"","sources":["../../../src/statements/control/conditionals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditionals.js","sourceRoot":"","sources":["../../../src/statements/control/conditionals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loops.d.ts","sourceRoot":"","sources":["../../../src/statements/control/loops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AA6H3E;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAQzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,EACpD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA0EzB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAczB,CAAC"}
1
+ {"version":3,"file":"loops.d.ts","sourceRoot":"","sources":["../../../src/statements/control/loops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AA8H3E;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAQzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,EACpD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA0EzB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoDzB,CAAC"}