@tsonic/emitter 0.0.12 → 0.0.13

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 (140) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +6 -6
  3. package/dist/array.test.js.map +1 -1
  4. package/dist/core/attributes.d.ts +43 -0
  5. package/dist/core/attributes.d.ts.map +1 -0
  6. package/dist/core/attributes.js +128 -0
  7. package/dist/core/attributes.js.map +1 -0
  8. package/dist/core/attributes.test.d.ts +5 -0
  9. package/dist/core/attributes.test.d.ts.map +1 -0
  10. package/dist/core/attributes.test.js +296 -0
  11. package/dist/core/attributes.test.js.map +1 -0
  12. package/dist/core/index.d.ts +1 -0
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -0
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  17. package/dist/core/module-emitter/static-container.js +50 -1
  18. package/dist/core/module-emitter/static-container.js.map +1 -1
  19. package/dist/core/module-emitter.test.js +2 -1
  20. package/dist/core/module-emitter.test.js.map +1 -1
  21. package/dist/core/module-map.d.ts.map +1 -1
  22. package/dist/core/module-map.js +5 -1
  23. package/dist/core/module-map.js.map +1 -1
  24. package/dist/core/module-map.test.d.ts +8 -0
  25. package/dist/core/module-map.test.d.ts.map +1 -0
  26. package/dist/core/module-map.test.js +94 -0
  27. package/dist/core/module-map.test.js.map +1 -0
  28. package/dist/core/type-compatibility.d.ts +6 -1
  29. package/dist/core/type-compatibility.d.ts.map +1 -1
  30. package/dist/core/type-compatibility.js +12 -22
  31. package/dist/core/type-compatibility.js.map +1 -1
  32. package/dist/core/type-resolution.d.ts +2 -2
  33. package/dist/core/type-resolution.js +6 -6
  34. package/dist/core/type-resolution.js.map +1 -1
  35. package/dist/emitter.d.ts.map +1 -1
  36. package/dist/emitter.js +47 -1
  37. package/dist/emitter.js.map +1 -1
  38. package/dist/expression-emitter.d.ts.map +1 -1
  39. package/dist/expression-emitter.js +3 -3
  40. package/dist/expression-emitter.js.map +1 -1
  41. package/dist/expressions/access.d.ts.map +1 -1
  42. package/dist/expressions/access.js +46 -15
  43. package/dist/expressions/access.js.map +1 -1
  44. package/dist/expressions/calls.d.ts.map +1 -1
  45. package/dist/expressions/calls.js +86 -13
  46. package/dist/expressions/calls.js.map +1 -1
  47. package/dist/expressions/collections.d.ts.map +1 -1
  48. package/dist/expressions/collections.js +44 -35
  49. package/dist/expressions/collections.js.map +1 -1
  50. package/dist/expressions/identifiers.d.ts.map +1 -1
  51. package/dist/expressions/identifiers.js +1 -0
  52. package/dist/expressions/identifiers.js.map +1 -1
  53. package/dist/expressions/index.test.js +3 -1
  54. package/dist/expressions/index.test.js.map +1 -1
  55. package/dist/expressions/literals.d.ts +7 -15
  56. package/dist/expressions/literals.d.ts.map +1 -1
  57. package/dist/expressions/literals.js +15 -99
  58. package/dist/expressions/literals.js.map +1 -1
  59. package/dist/expressions/literals.test.js +11 -2
  60. package/dist/expressions/literals.test.js.map +1 -1
  61. package/dist/expressions/operators.d.ts +25 -11
  62. package/dist/expressions/operators.d.ts.map +1 -1
  63. package/dist/expressions/operators.js +151 -107
  64. package/dist/expressions/operators.js.map +1 -1
  65. package/dist/expressions/other.d.ts +3 -0
  66. package/dist/expressions/other.d.ts.map +1 -1
  67. package/dist/expressions/other.js +18 -1
  68. package/dist/expressions/other.js.map +1 -1
  69. package/dist/generator.test.js +2 -2
  70. package/dist/generator.test.js.map +1 -1
  71. package/dist/golden-tests/discovery.d.ts +14 -3
  72. package/dist/golden-tests/discovery.d.ts.map +1 -1
  73. package/dist/golden-tests/discovery.js +93 -10
  74. package/dist/golden-tests/discovery.js.map +1 -1
  75. package/dist/golden-tests/index.d.ts +1 -1
  76. package/dist/golden-tests/index.d.ts.map +1 -1
  77. package/dist/golden-tests/index.js.map +1 -1
  78. package/dist/golden-tests/runner.d.ts +1 -0
  79. package/dist/golden-tests/runner.d.ts.map +1 -1
  80. package/dist/golden-tests/runner.js +30 -27
  81. package/dist/golden-tests/runner.js.map +1 -1
  82. package/dist/golden-tests/types.d.ts +7 -0
  83. package/dist/golden-tests/types.d.ts.map +1 -1
  84. package/dist/golden.test.d.ts +12 -5
  85. package/dist/golden.test.d.ts.map +1 -1
  86. package/dist/golden.test.js +40 -21
  87. package/dist/golden.test.js.map +1 -1
  88. package/dist/integration.test.js +8 -8
  89. package/dist/integration.test.js.map +1 -1
  90. package/dist/invariants/emitter-globals-subset.test.js +4 -4
  91. package/dist/invariants/emitter-globals-subset.test.js.map +1 -1
  92. package/dist/invariants/numeric-proof-contract.test.js +20 -15
  93. package/dist/invariants/numeric-proof-contract.test.js.map +1 -1
  94. package/dist/specialization/generic-functions.test.js +366 -0
  95. package/dist/specialization/generic-functions.test.js.map +1 -1
  96. package/dist/specialization/interfaces.test.js +6 -6
  97. package/dist/specialization/interfaces.test.js.map +1 -1
  98. package/dist/specialization/type-aliases.test.js +88 -5
  99. package/dist/specialization/type-aliases.test.js.map +1 -1
  100. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  101. package/dist/statements/classes/members/methods.js +13 -4
  102. package/dist/statements/classes/members/methods.js.map +1 -1
  103. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  104. package/dist/statements/classes/members/properties.js +10 -1
  105. package/dist/statements/classes/members/properties.js.map +1 -1
  106. package/dist/statements/classes/properties.d.ts.map +1 -1
  107. package/dist/statements/classes/properties.js +4 -0
  108. package/dist/statements/classes/properties.js.map +1 -1
  109. package/dist/statements/control/conditionals.d.ts.map +1 -1
  110. package/dist/statements/control/conditionals.js +138 -1
  111. package/dist/statements/control/conditionals.js.map +1 -1
  112. package/dist/statements/declarations/classes.d.ts.map +1 -1
  113. package/dist/statements/declarations/classes.js +7 -1
  114. package/dist/statements/declarations/classes.js.map +1 -1
  115. package/dist/statements/declarations/functions.d.ts.map +1 -1
  116. package/dist/statements/declarations/functions.js +7 -1
  117. package/dist/statements/declarations/functions.js.map +1 -1
  118. package/dist/statements/declarations/structs.test.js +7 -5
  119. package/dist/statements/declarations/structs.test.js.map +1 -1
  120. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  121. package/dist/statements/declarations/type-aliases.js +7 -8
  122. package/dist/statements/declarations/type-aliases.js.map +1 -1
  123. package/dist/statements/declarations/variables.d.ts.map +1 -1
  124. package/dist/statements/declarations/variables.js +54 -2
  125. package/dist/statements/declarations/variables.js.map +1 -1
  126. package/dist/statements/index.test.js +2 -3
  127. package/dist/statements/index.test.js.map +1 -1
  128. package/dist/types/parameters.d.ts.map +1 -1
  129. package/dist/types/parameters.js +29 -0
  130. package/dist/types/parameters.js.map +1 -1
  131. package/dist/types/primitives.d.ts +12 -1
  132. package/dist/types/primitives.d.ts.map +1 -1
  133. package/dist/types/primitives.js +14 -1
  134. package/dist/types/primitives.js.map +1 -1
  135. package/dist/types/references.d.ts.map +1 -1
  136. package/dist/types/references.js +19 -12
  137. package/dist/types/references.js.map +1 -1
  138. package/dist/types/references.test.js +6 -8
  139. package/dist/types/references.test.js.map +1 -1
  140. package/package.json +5 -2
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * Operator expression emitters (binary, logical, unary, update, assignment, conditional)
3
+ *
4
+ * NEW NUMERIC SPEC:
5
+ * - Literals use raw lexeme (no contextual widening)
6
+ * - Integer casts only from IrCastExpression (not inferred from expectedType)
7
+ * - Binary ops: int op int = int, double op anything = double (C# semantics)
3
8
  */
4
9
  import { emitExpression } from "../expression-emitter.js";
5
- import { getExpectedClrTypeForNumeric } from "./literals.js";
6
10
  import { resolveTypeAlias, stripNullish, findUnionMemberIndex, } from "../core/type-resolution.js";
7
- import { isIntegerType } from "../core/type-compatibility.js";
8
11
  import { escapeCSharpIdentifier } from "../emitter-types/index.js";
9
12
  /**
10
13
  * Get operator precedence for proper parenthesization
@@ -40,87 +43,68 @@ const getPrecedence = (operator) => {
40
43
  return precedences[operator] ?? 16;
41
44
  };
42
45
  /**
43
- * Get the C# type name for an integer CLR type (for explicit casts).
44
- * Returns the type keyword or undefined if not an integer type.
46
+ * Check if an expression has char type (either from string indexer or a variable typed as char).
47
+ * In C#, string[int] returns char, not string like in TypeScript.
48
+ * The IR now correctly sets inferredType to char for string indexer access.
49
+ */
50
+ const isCharTyped = (expr) => {
51
+ return (expr.inferredType?.kind === "primitiveType" &&
52
+ expr.inferredType.name === "char");
53
+ };
54
+ /**
55
+ * Check if an expression is a single-character string literal.
56
+ * Returns the character if so, undefined otherwise.
45
57
  */
46
- const getIntegerCastType = (irType) => {
47
- const clrType = getExpectedClrTypeForNumeric(irType);
48
- if (!clrType)
58
+ const getSingleCharLiteral = (expr) => {
59
+ if (expr.kind !== "literal")
49
60
  return undefined;
50
- // Map to C# type keywords for casts
51
- const typeMap = {
52
- int: "int",
53
- Int32: "int",
54
- "System.Int32": "int",
55
- long: "long",
56
- Int64: "long",
57
- "System.Int64": "long",
58
- short: "short",
59
- Int16: "short",
60
- "System.Int16": "short",
61
- byte: "byte",
62
- Byte: "byte",
63
- "System.Byte": "byte",
64
- sbyte: "sbyte",
65
- SByte: "sbyte",
66
- "System.SByte": "sbyte",
67
- uint: "uint",
68
- UInt32: "uint",
69
- "System.UInt32": "uint",
70
- ulong: "ulong",
71
- UInt64: "ulong",
72
- "System.UInt64": "ulong",
73
- ushort: "ushort",
74
- UInt16: "ushort",
75
- "System.UInt16": "ushort",
76
- };
77
- return typeMap[clrType];
61
+ if (typeof expr.value !== "string")
62
+ return undefined;
63
+ if (expr.value.length !== 1)
64
+ return undefined;
65
+ return expr.value;
66
+ };
67
+ /**
68
+ * Escape a character for use in a C# char literal.
69
+ * Handles special characters like quotes, backslash, newline, etc.
70
+ */
71
+ const escapeCharLiteral = (char) => {
72
+ switch (char) {
73
+ case "'":
74
+ return "\\'";
75
+ case "\\":
76
+ return "\\\\";
77
+ case "\n":
78
+ return "\\n";
79
+ case "\r":
80
+ return "\\r";
81
+ case "\t":
82
+ return "\\t";
83
+ case "\0":
84
+ return "\\0";
85
+ default:
86
+ return char;
87
+ }
78
88
  };
79
89
  /**
80
90
  * Emit a binary operator expression
81
91
  *
82
- * When the expression has an integer inferredType (from `as int` etc.),
83
- * or when expectedType requires an integer, we wrap the result with an
84
- * explicit cast to ensure correct C# semantics.
85
- * This handles cases like `(i + 1) as int` which must emit as `(int)(i + 1)`.
92
+ * NEW NUMERIC SPEC: No contextual type propagation for numeric literals.
93
+ * Literals use their raw lexeme - C# will naturally handle int + int = int,
94
+ * int + double = double, etc.
95
+ *
96
+ * Explicit casts come from IrCastExpression nodes (generated by type-checker
97
+ * when user intent allows int → double coercion).
98
+ *
99
+ * STRING INDEXER FIX: In C#, string[int] returns char, not string.
100
+ * When comparing a string indexer result with a single-character string literal,
101
+ * we emit the string as a char literal to avoid CS0019 (char == string).
86
102
  *
87
103
  * @param expr - The binary expression
88
104
  * @param context - Emitter context
89
- * @param expectedType - Optional expected type from outer context (assignment, return, etc.)
105
+ * @param _expectedType - Unused under new spec (kept for API compatibility)
90
106
  */
91
- export const emitBinary = (expr, context, expectedType) => {
92
- // Comparison operators return boolean, not numeric - never apply int casts
93
- const isComparisonOp = expr.operator === "<" ||
94
- expr.operator === ">" ||
95
- expr.operator === "<=" ||
96
- expr.operator === ">=" ||
97
- expr.operator === "==" ||
98
- expr.operator === "!=" ||
99
- expr.operator === "===" ||
100
- expr.operator === "!==";
101
- // Check operand types for integer handling (for literal emission context only)
102
- const leftIsInt = isIntegerType(expr.left.inferredType);
103
- const rightIsInt = isIntegerType(expr.right.inferredType);
104
- const leftIsNumericLiteral = expr.left.kind === "literal" && typeof expr.left.value === "number";
105
- const rightIsNumericLiteral = expr.right.kind === "literal" && typeof expr.right.value === "number";
106
- // Check if this binary expression has explicit integer type annotation
107
- // ONLY use numericIntent from the IR - NO heuristics like "eitherOperandInt"
108
- // The proof system validates all narrowings; emitter must not guess
109
- // NEVER apply int casts to comparison operators (they return bool)
110
- const integerCastType = isComparisonOp
111
- ? undefined
112
- : getIntegerCastType(expr.inferredType) || getIntegerCastType(expectedType);
113
- // Determine expected type for children based on operand types
114
- // This ensures literals emit correctly (e.g., x + 1 where x is int → 1 not 1.0)
115
- // This is context propagation, not type inference - the proof system handles inference
116
- const childExpectedType = leftIsInt || rightIsInt
117
- ? { kind: "referenceType", name: "int" }
118
- : integerCastType
119
- ? { kind: "referenceType", name: integerCastType }
120
- : undefined;
121
- // Pass expected type to children so literals emit correctly
122
- const [leftFrag, leftContext] = emitExpression(expr.left, context, childExpectedType);
123
- const [rightFrag, rightContext] = emitExpression(expr.right, leftContext, childExpectedType);
107
+ export const emitBinary = (expr, context, _expectedType) => {
124
108
  // Map JavaScript operators to C# operators
125
109
  const operatorMap = {
126
110
  "===": "==",
@@ -134,9 +118,76 @@ export const emitBinary = (expr, context, expectedType) => {
134
118
  const parentPrecedence = getPrecedence(expr.operator);
135
119
  // Handle typeof operator specially
136
120
  if (expr.operator === "instanceof") {
121
+ const [leftFrag, leftContext] = emitExpression(expr.left, context);
122
+ const [rightFrag, rightContext] = emitExpression(expr.right, leftContext);
137
123
  const text = `${leftFrag.text} is ${rightFrag.text}`;
138
124
  return [{ text, precedence: 7 }, rightContext];
139
125
  }
126
+ // CHAR VS STRING COMPARISON FIX:
127
+ // In C#, string[int] returns char, but in TypeScript it returns string.
128
+ // The IR now sets inferredType to char for string indexer access.
129
+ // When comparing a char-typed expression with a single-character string literal,
130
+ // emit the string as a char literal to avoid CS0019 (operator == cannot be applied to char and string).
131
+ const isComparisonOp = op === "==" ||
132
+ op === "!=" ||
133
+ op === "<" ||
134
+ op === ">" ||
135
+ op === "<=" ||
136
+ op === ">=";
137
+ if (isComparisonOp) {
138
+ const leftIsChar = isCharTyped(expr.left);
139
+ const rightIsChar = isCharTyped(expr.right);
140
+ const leftSingleChar = getSingleCharLiteral(expr.left);
141
+ const rightSingleChar = getSingleCharLiteral(expr.right);
142
+ // Case 1: left is char-typed, right is single-char literal → emit right as char
143
+ if (leftIsChar && rightSingleChar !== undefined) {
144
+ const [leftFrag, leftContext] = emitExpression(expr.left, context);
145
+ // Emit as char literal instead of string literal
146
+ const charLiteral = `'${escapeCharLiteral(rightSingleChar)}'`;
147
+ const text = `${leftFrag.text} ${op} ${charLiteral}`;
148
+ return [{ text, precedence: parentPrecedence }, leftContext];
149
+ }
150
+ // Case 2: right is char-typed, left is single-char literal → emit left as char
151
+ if (rightIsChar && leftSingleChar !== undefined) {
152
+ const [rightFrag, rightContext] = emitExpression(expr.right, context);
153
+ // Emit as char literal instead of string literal
154
+ const charLiteral = `'${escapeCharLiteral(leftSingleChar)}'`;
155
+ const text = `${charLiteral} ${op} ${rightFrag.text}`;
156
+ return [{ text, precedence: parentPrecedence }, rightContext];
157
+ }
158
+ }
159
+ // MODERN C# NULLABLE CHECK (C# 9+):
160
+ // Use `is null` / `is not null` pattern matching for nullish comparisons.
161
+ // This is more idiomatic than `== default` / `!= default` and works correctly
162
+ // with nullable value types (long?, int?, etc.) without needing .Value access.
163
+ //
164
+ // TypeScript: x === undefined → C#: x is null
165
+ // TypeScript: x !== undefined → C#: x is not null
166
+ // TypeScript: x === null → C#: x is null
167
+ // TypeScript: x !== null → C#: x is not null
168
+ const isNullishLiteral = (e) => (e.kind === "literal" && (e.value === undefined || e.value === null)) ||
169
+ (e.kind === "identifier" && (e.name === "undefined" || e.name === "null"));
170
+ const leftIsNullish = isNullishLiteral(expr.left);
171
+ const rightIsNullish = isNullishLiteral(expr.right);
172
+ const isNullishComparison = isComparisonOp &&
173
+ (op === "==" || op === "!=") &&
174
+ (leftIsNullish || rightIsNullish);
175
+ if (isNullishComparison) {
176
+ // One side is null/undefined literal, emit the other side with pattern matching
177
+ // Clear narrowedBindings so we emit the raw identifier (not .Value)
178
+ const nonNullishExpr = leftIsNullish ? expr.right : expr.left;
179
+ const nonNullishContext = { ...context, narrowedBindings: undefined };
180
+ const [nonNullishFrag, resultContext] = emitExpression(nonNullishExpr, nonNullishContext);
181
+ // Use `is null` for == and `is not null` for !=
182
+ const pattern = op === "==" ? "is null" : "is not null";
183
+ const text = `${nonNullishFrag.text} ${pattern}`;
184
+ return [{ text, precedence: getPrecedence(expr.operator) }, resultContext];
185
+ }
186
+ // Standard emission path
187
+ // Emit operands without contextual type propagation
188
+ // Literals will emit using their raw lexeme (42 vs 42.0)
189
+ const [leftFrag, leftContext] = emitExpression(expr.left, context);
190
+ const [rightFrag, rightContext] = emitExpression(expr.right, leftContext);
140
191
  // Wrap child expressions in parentheses if their precedence is lower than parent
141
192
  // This preserves grouping: (x + y) * z should not become x + y * z
142
193
  const leftText = leftFrag.precedence !== undefined && leftFrag.precedence < parentPrecedence
@@ -148,19 +199,7 @@ export const emitBinary = (expr, context, expectedType) => {
148
199
  rightFrag.precedence <= parentPrecedence
149
200
  ? `(${rightFrag.text})`
150
201
  : rightFrag.text;
151
- let text = `${leftText} ${op} ${rightText}`;
152
- // Determine if each operand will emit as int
153
- // An operand "will be int" if: (1) already has int type, OR (2) is a numeric literal
154
- // (literals emit as int when we pass int expectedType)
155
- const leftWillBeInt = leftIsInt || leftIsNumericLiteral;
156
- const rightWillBeInt = rightIsInt || rightIsNumericLiteral;
157
- const bothWillBeInt = leftWillBeInt && rightWillBeInt;
158
- // Wrap with explicit cast if integer type is required AND operands won't both produce int
159
- // Alice's invariant: "No cosmetic casts" - don't wrap if result is already int
160
- // For arithmetic ops, int + int = int in C#, so no cast needed when both are int
161
- if (integerCastType && !bothWillBeInt) {
162
- text = `(${integerCastType})(${text})`;
163
- }
202
+ const text = `${leftText} ${op} ${rightText}`;
164
203
  return [{ text, precedence: getPrecedence(expr.operator) }, rightContext];
165
204
  };
166
205
  /**
@@ -197,20 +236,15 @@ export const emitLogical = (expr, context) => {
197
236
  /**
198
237
  * Emit a unary operator expression (-, +, !, ~, typeof, void, delete)
199
238
  *
200
- * When the expression has an integer inferredType (from `as int` etc.),
201
- * or when expectedType requires an integer, we wrap the result with an
202
- * explicit cast. This handles `-1 as int`.
239
+ * NEW NUMERIC SPEC: No contextual type propagation for numeric literals.
240
+ * Explicit casts come from IrCastExpression nodes.
203
241
  *
204
242
  * @param expr - The unary expression
205
243
  * @param context - Emitter context
206
- * @param expectedType - Optional expected type from outer context
244
+ * @param _expectedType - Unused under new spec (kept for API compatibility)
207
245
  */
208
- export const emitUnary = (expr, context, expectedType) => {
209
- // Check if this unary expression should produce an integer result
210
- // Priority: expression's own inferredType > expectedType from context
211
- const integerCastType = getIntegerCastType(expr.inferredType) || getIntegerCastType(expectedType);
212
- // Pass expected type to operand so literals emit correctly
213
- const [operandFrag, newContext] = emitExpression(expr.expression, context, integerCastType ? expr.inferredType : undefined);
246
+ export const emitUnary = (expr, context, _expectedType) => {
247
+ const [operandFrag, newContext] = emitExpression(expr.expression, context);
214
248
  if (expr.operator === "typeof") {
215
249
  // typeof becomes global::Tsonic.Runtime.Operators.typeof()
216
250
  const text = `global::Tsonic.Runtime.Operators.@typeof(${operandFrag.text})`;
@@ -226,17 +260,7 @@ export const emitUnary = (expr, context, expectedType) => {
226
260
  const text = `/* delete ${operandFrag.text} */`;
227
261
  return [{ text }, newContext];
228
262
  }
229
- let text = `${expr.operator}${operandFrag.text}`;
230
- // Check if operand already produces integer (no cast needed)
231
- // Alice's invariant: "No cosmetic casts" - skip cast if result is already int
232
- const operandAlreadyInt = isIntegerType(expr.expression.inferredType);
233
- // Wrap with explicit cast if integer type is required AND operand doesn't already produce int
234
- // For unary +/- on int, the result is int in C#, so no cast needed
235
- if (integerCastType &&
236
- !operandAlreadyInt &&
237
- (expr.operator === "-" || expr.operator === "+")) {
238
- text = `(${integerCastType})(${text})`;
239
- }
263
+ const text = `${expr.operator}${operandFrag.text}`;
240
264
  return [{ text, precedence: 15 }, newContext];
241
265
  };
242
266
  /**
@@ -254,8 +278,28 @@ export const emitUpdate = (expr, context) => {
254
278
  *
255
279
  * Passes the LHS type as expected type to RHS, enabling proper integer
256
280
  * literal emission for cases like `this.value = this.value + 1`.
281
+ *
282
+ * Special handling for JS mode array element assignment:
283
+ * - In JS mode, array[idx] = value must emit Array.set(array, idx, value)
284
+ * - NOT Array.get(array, idx) = value (which is invalid C#)
257
285
  */
258
286
  export const emitAssignment = (expr, context) => {
287
+ const runtime = context.options.runtime ?? "js";
288
+ // Special case: JS mode array element assignment
289
+ // arr[idx] = value → Array.set(arr, idx, value)
290
+ if (expr.operator === "=" &&
291
+ runtime === "js" &&
292
+ "kind" in expr.left &&
293
+ expr.left.kind === "memberAccess" &&
294
+ expr.left.isComputed &&
295
+ expr.left.object.inferredType?.kind === "arrayType") {
296
+ const leftExpr = expr.left;
297
+ const [objectFrag, objectContext] = emitExpression(leftExpr.object, context);
298
+ const [indexFrag, indexContext] = emitExpression(leftExpr.property, objectContext);
299
+ const [rightFrag, rightContext] = emitExpression(expr.right, indexContext);
300
+ const text = `global::Tsonic.JSRuntime.Array.set(${objectFrag.text}, ${indexFrag.text}, ${rightFrag.text})`;
301
+ return [{ text, precedence: 3 }, rightContext];
302
+ }
259
303
  // Left side can be an expression or a pattern (for destructuring)
260
304
  let leftText;
261
305
  let leftContext;
@@ -1 +1 @@
1
- {"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/expressions/operators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/expressions/operators.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ import { EmitterContext, CSharpFragment } from "../types.js";
9
9
  * All interpolation holes are wrapped in parentheses: {(expr)}
10
10
  * This prevents C# parsing ambiguity where ':' in expressions like
11
11
  * 'global::Namespace.Type' would be interpreted as a format specifier.
12
+ *
13
+ * Literal curly braces in template strings are escaped as {{ and }}
14
+ * since they are interpolation delimiters in C#.
12
15
  */
13
16
  export declare const emitTemplateLiteral: (expr: Extract<IrExpression, {
14
17
  kind: "templateLiteral";
@@ -1 +1 @@
1
- {"version":3,"file":"other.d.ts","sourceRoot":"","sources":["../../src/expressions/other.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7D;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACxD,SAAS,cAAc,KACtB,CAAC,cAAc,EAAE,cAAc,CAgCjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EAC/C,SAAS,cAAc,KACtB,CAAC,cAAc,EAAE,cAAc,CAKjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,cAAc,EAAE,cAAc,CAIjC,CAAC"}
1
+ {"version":3,"file":"other.d.ts","sourceRoot":"","sources":["../../src/expressions/other.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB7D;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACxD,SAAS,cAAc,KACtB,CAAC,cAAc,EAAE,cAAc,CAiCjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EAC/C,SAAS,cAAc,KACtB,CAAC,cAAc,EAAE,cAAc,CAKjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,cAAc,EAAE,cAAc,CAIjC,CAAC"}
@@ -2,12 +2,28 @@
2
2
  * Miscellaneous expression emitters (template literals, spread, await)
3
3
  */
4
4
  import { emitExpression } from "../expression-emitter.js";
5
+ /**
6
+ * Escape a string for use in a C# interpolated string literal.
7
+ * Handles backslashes, quotes, newlines, carriage returns, tabs,
8
+ * and curly braces (which are interpolation delimiters in C#).
9
+ */
10
+ const escapeForInterpolatedString = (str) => str
11
+ .replace(/\\/g, "\\\\") // Backslash first to avoid double-escaping
12
+ .replace(/"/g, '\\"')
13
+ .replace(/\n/g, "\\n")
14
+ .replace(/\r/g, "\\r")
15
+ .replace(/\t/g, "\\t")
16
+ .replace(/\{/g, "{{") // Escape { for C# interpolated strings
17
+ .replace(/\}/g, "}}"); // Escape } for C# interpolated strings
5
18
  /**
6
19
  * Emit a template literal as C# interpolated string
7
20
  *
8
21
  * All interpolation holes are wrapped in parentheses: {(expr)}
9
22
  * This prevents C# parsing ambiguity where ':' in expressions like
10
23
  * 'global::Namespace.Type' would be interpreted as a format specifier.
24
+ *
25
+ * Literal curly braces in template strings are escaped as {{ and }}
26
+ * since they are interpolation delimiters in C#.
11
27
  */
12
28
  export const emitTemplateLiteral = (expr, context) => {
13
29
  let currentContext = context;
@@ -15,7 +31,8 @@ export const emitTemplateLiteral = (expr, context) => {
15
31
  for (let i = 0; i < expr.quasis.length; i++) {
16
32
  const quasi = expr.quasis[i];
17
33
  if (quasi !== undefined && quasi !== null) {
18
- parts.push(quasi);
34
+ // Escape the quasi for C# interpolated string
35
+ parts.push(escapeForInterpolatedString(quasi));
19
36
  }
20
37
  const exprAtIndex = expr.expressions[i];
21
38
  if (i < expr.expressions.length && exprAtIndex) {
@@ -1 +1 @@
1
- {"version":3,"file":"other.js","sourceRoot":"","sources":["../../src/expressions/other.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAwD,EACxD,OAAuB,EACW,EAAE;IACpC,IAAI,cAAc,GAAG,OAAO,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,cAAc,CAC3C,WAAW,EACX,cAAc,CACf,CAAC;YACF,qFAAqF;YACrF,0BAA0B;YAC1B,wDAAwD;YACxD,iEAAiE;YACjE,MAAM,WAAW,GACf,WAAW,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,WAAW;gBAC/B,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI;gBACxB,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,cAAc,GAAG,UAAU,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;IACpC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAA+C,EAC/C,OAAuB,EACW,EAAE;IACpC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxE,gDAAgD;IAChD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAA8C,EAC9C,OAAuB,EACW,EAAE;IACpC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,SAAS,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC"}
1
+ {"version":3,"file":"other.js","sourceRoot":"","sources":["../../src/expressions/other.ts"],"names":[],"mappings":"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"}
@@ -329,8 +329,8 @@ describe("Generator Emission", () => {
329
329
  ],
330
330
  };
331
331
  const code = emitModule(module);
332
- // Should emit yield output
333
- expect(code).to.include("exchange.Output = 42.0");
332
+ // Should emit yield output - integer literal emits as-is
333
+ expect(code).to.include("exchange.Output = 42");
334
334
  expect(code).to.include("yield return exchange");
335
335
  // Should emit receive pattern with null coalescing
336
336
  expect(code).to.include("var msg = exchange.Input ?? default!");
@@ -1 +1 @@
1
- {"version":3,"file":"generator.test.js","sourceRoot":"","sources":["../src/generator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.test.js","sourceRoot":"","sources":["../src/generator.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
1
  /**
2
2
  * Test scenario discovery
3
+ *
4
+ * Directory structure:
5
+ * testcases/
6
+ * ├── common/ # Tests that work in BOTH modes
7
+ * │ ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
+ * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
+ * └── js-only/ # Tests that ONLY work in JS mode
11
+ * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
3
12
  */
4
- import { Scenario } from "./types.js";
13
+ import { RuntimeMode, Scenario } from "./types.js";
5
14
  /**
6
- * Discover all test scenarios by walking the testcases directory (synchronous)
15
+ * Discover all test scenarios for a given runtime mode
16
+ * - dotnet mode: only common/ tests
17
+ * - js mode: common/ + js-only/ tests
7
18
  */
8
- export declare const discoverScenarios: (baseDir: string) => readonly Scenario[];
19
+ export declare const discoverScenarios: (baseDir: string, runtimeMode: RuntimeMode) => readonly Scenario[];
9
20
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/golden-tests/discovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,SAAS,QAAQ,EAkEpE,CAAC"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/golden-tests/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGnD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,aAAa,WAAW,KACvB,SAAS,QAAQ,EAYnB,CAAC"}