@tsonic/frontend 0.0.5 → 0.0.12

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 (138) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/ir/builder/imports.d.ts.map +1 -1
  7. package/dist/ir/builder/imports.js +0 -5
  8. package/dist/ir/builder/imports.js.map +1 -1
  9. package/dist/ir/builder.test.js +60 -0
  10. package/dist/ir/builder.test.js.map +1 -1
  11. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  12. package/dist/ir/converters/expressions/access.js +65 -2
  13. package/dist/ir/converters/expressions/access.js.map +1 -1
  14. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  15. package/dist/ir/converters/expressions/calls.js +49 -1
  16. package/dist/ir/converters/expressions/calls.js.map +1 -1
  17. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  18. package/dist/ir/converters/expressions/collections.js +4 -1
  19. package/dist/ir/converters/expressions/collections.js.map +1 -1
  20. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  21. package/dist/ir/converters/expressions/functions.js +3 -1
  22. package/dist/ir/converters/expressions/functions.js.map +1 -1
  23. package/dist/ir/converters/expressions/helpers.d.ts +10 -0
  24. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  25. package/dist/ir/converters/expressions/helpers.js +173 -7
  26. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  27. package/dist/ir/converters/expressions/index.d.ts +1 -1
  28. package/dist/ir/converters/expressions/index.d.ts.map +1 -1
  29. package/dist/ir/converters/expressions/index.js +1 -1
  30. package/dist/ir/converters/expressions/index.js.map +1 -1
  31. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  32. package/dist/ir/converters/expressions/literals.js +2 -1
  33. package/dist/ir/converters/expressions/literals.js.map +1 -1
  34. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +14 -0
  35. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -0
  36. package/dist/ir/converters/expressions/numeric-recovery.test.js +286 -0
  37. package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -0
  38. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  39. package/dist/ir/converters/expressions/operators.js +16 -2
  40. package/dist/ir/converters/expressions/operators.js.map +1 -1
  41. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  42. package/dist/ir/converters/expressions/other.js +4 -1
  43. package/dist/ir/converters/expressions/other.js.map +1 -1
  44. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  45. package/dist/ir/converters/statements/control/loops.js +1 -0
  46. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  47. package/dist/ir/expression-converter.d.ts.map +1 -1
  48. package/dist/ir/expression-converter.js +81 -9
  49. package/dist/ir/expression-converter.js.map +1 -1
  50. package/dist/ir/type-converter/arrays.d.ts.map +1 -1
  51. package/dist/ir/type-converter/arrays.js +1 -0
  52. package/dist/ir/type-converter/arrays.js.map +1 -1
  53. package/dist/ir/type-converter/inference.d.ts.map +1 -1
  54. package/dist/ir/type-converter/inference.js +31 -20
  55. package/dist/ir/type-converter/inference.js.map +1 -1
  56. package/dist/ir/type-converter/literals.d.ts.map +1 -1
  57. package/dist/ir/type-converter/literals.js +2 -1
  58. package/dist/ir/type-converter/literals.js.map +1 -1
  59. package/dist/ir/type-converter/objects.d.ts.map +1 -1
  60. package/dist/ir/type-converter/objects.js +2 -1
  61. package/dist/ir/type-converter/objects.js.map +1 -1
  62. package/dist/ir/type-converter/orchestrator.d.ts.map +1 -1
  63. package/dist/ir/type-converter/orchestrator.js +18 -1
  64. package/dist/ir/type-converter/orchestrator.js.map +1 -1
  65. package/dist/ir/type-converter/references.d.ts.map +1 -1
  66. package/dist/ir/type-converter/references.js +14 -18
  67. package/dist/ir/type-converter/references.js.map +1 -1
  68. package/dist/ir/types/expressions.d.ts +102 -1
  69. package/dist/ir/types/expressions.d.ts.map +1 -1
  70. package/dist/ir/types/guards.d.ts.map +1 -1
  71. package/dist/ir/types/guards.js +2 -0
  72. package/dist/ir/types/guards.js.map +1 -1
  73. package/dist/ir/types/index.d.ts +4 -2
  74. package/dist/ir/types/index.d.ts.map +1 -1
  75. package/dist/ir/types/index.js +1 -0
  76. package/dist/ir/types/index.js.map +1 -1
  77. package/dist/ir/types/ir-types.d.ts +19 -0
  78. package/dist/ir/types/ir-types.d.ts.map +1 -1
  79. package/dist/ir/types/numeric-kind.d.ts +68 -0
  80. package/dist/ir/types/numeric-kind.d.ts.map +1 -0
  81. package/dist/ir/types/numeric-kind.js +170 -0
  82. package/dist/ir/types/numeric-kind.js.map +1 -0
  83. package/dist/ir/types/statements.d.ts +38 -1
  84. package/dist/ir/types/statements.d.ts.map +1 -1
  85. package/dist/ir/types.d.ts +2 -1
  86. package/dist/ir/types.d.ts.map +1 -1
  87. package/dist/ir/types.js +2 -0
  88. package/dist/ir/types.js.map +1 -1
  89. package/dist/ir/validation/index.d.ts +7 -0
  90. package/dist/ir/validation/index.d.ts.map +1 -0
  91. package/dist/ir/validation/index.js +7 -0
  92. package/dist/ir/validation/index.js.map +1 -0
  93. package/dist/ir/validation/numeric-invariants.test.d.ts +15 -0
  94. package/dist/ir/validation/numeric-invariants.test.d.ts.map +1 -0
  95. package/dist/ir/validation/numeric-invariants.test.js +598 -0
  96. package/dist/ir/validation/numeric-invariants.test.js.map +1 -0
  97. package/dist/ir/validation/numeric-proof-pass.d.ts +37 -0
  98. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -0
  99. package/dist/ir/validation/numeric-proof-pass.js +889 -0
  100. package/dist/ir/validation/numeric-proof-pass.js.map +1 -0
  101. package/dist/ir/validation/soundness-gate.d.ts +26 -0
  102. package/dist/ir/validation/soundness-gate.d.ts.map +1 -0
  103. package/dist/ir/validation/soundness-gate.js +551 -0
  104. package/dist/ir/validation/soundness-gate.js.map +1 -0
  105. package/dist/ir/validation/soundness-gate.test.d.ts +13 -0
  106. package/dist/ir/validation/soundness-gate.test.d.ts.map +1 -0
  107. package/dist/ir/validation/soundness-gate.test.js +315 -0
  108. package/dist/ir/validation/soundness-gate.test.js.map +1 -0
  109. package/dist/ir/validation/yield-lowering-pass.d.ts +40 -0
  110. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -0
  111. package/dist/ir/validation/yield-lowering-pass.js +548 -0
  112. package/dist/ir/validation/yield-lowering-pass.js.map +1 -0
  113. package/dist/ir/validation/yield-lowering-pass.test.d.ts +12 -0
  114. package/dist/ir/validation/yield-lowering-pass.test.d.ts.map +1 -0
  115. package/dist/ir/validation/yield-lowering-pass.test.js +761 -0
  116. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -0
  117. package/dist/program/bindings.d.ts +5 -0
  118. package/dist/program/bindings.d.ts.map +1 -1
  119. package/dist/program/bindings.js +12 -1
  120. package/dist/program/bindings.js.map +1 -1
  121. package/dist/program/dependency-graph.d.ts +3 -0
  122. package/dist/program/dependency-graph.d.ts.map +1 -1
  123. package/dist/program/dependency-graph.js +28 -4
  124. package/dist/program/dependency-graph.js.map +1 -1
  125. package/dist/program/index.d.ts +1 -1
  126. package/dist/program/index.d.ts.map +1 -1
  127. package/dist/program/index.js.map +1 -1
  128. package/dist/program.d.ts +1 -0
  129. package/dist/program.d.ts.map +1 -1
  130. package/dist/program.js.map +1 -1
  131. package/dist/types/diagnostic.d.ts +1 -1
  132. package/dist/types/diagnostic.d.ts.map +1 -1
  133. package/dist/types/diagnostic.js.map +1 -1
  134. package/package.json +1 -1
  135. package/dist/types/parameter-modifiers.d.ts +0 -55
  136. package/dist/types/parameter-modifiers.d.ts.map +0 -1
  137. package/dist/types/parameter-modifiers.js +0 -148
  138. package/dist/types/parameter-modifiers.js.map +0 -1
@@ -0,0 +1,170 @@
1
+ /**
2
+ * NumericKind - Represents all CLR numeric types that Tsonic supports.
3
+ *
4
+ * This module provides:
5
+ * - NumericKind type union
6
+ * - Mapping from Tsonic type names to CLR kinds
7
+ * - Range bounds for compile-time literal validation
8
+ * - C# binary operator promotion rules
9
+ */
10
+ /**
11
+ * Maps Tsonic type alias names to CLR numeric kinds.
12
+ * Used to recognize numeric intent from TypeScript annotations.
13
+ */
14
+ export const TSONIC_TO_NUMERIC_KIND = new Map([
15
+ ["sbyte", "SByte"],
16
+ ["byte", "Byte"],
17
+ ["short", "Int16"],
18
+ ["ushort", "UInt16"],
19
+ ["int", "Int32"],
20
+ ["uint", "UInt32"],
21
+ ["long", "Int64"],
22
+ ["ulong", "UInt64"],
23
+ ["float", "Single"],
24
+ ["double", "Double"],
25
+ ]);
26
+ /**
27
+ * Maps CLR numeric kinds back to C# type names for emission.
28
+ */
29
+ export const NUMERIC_KIND_TO_CSHARP = new Map([
30
+ ["SByte", "sbyte"],
31
+ ["Byte", "byte"],
32
+ ["Int16", "short"],
33
+ ["UInt16", "ushort"],
34
+ ["Int32", "int"],
35
+ ["UInt32", "uint"],
36
+ ["Int64", "long"],
37
+ ["UInt64", "ulong"],
38
+ ["Single", "float"],
39
+ ["Double", "double"],
40
+ ]);
41
+ /**
42
+ * Range bounds for compile-time literal validation.
43
+ * Uses bigint for exact integer range checking.
44
+ * Float ranges are marked as 0n - they require different validation.
45
+ */
46
+ export const NUMERIC_RANGES = new Map([
47
+ ["SByte", { min: -128n, max: 127n }],
48
+ ["Byte", { min: 0n, max: 255n }],
49
+ ["Int16", { min: -32768n, max: 32767n }],
50
+ ["UInt16", { min: 0n, max: 65535n }],
51
+ ["Int32", { min: -2147483648n, max: 2147483647n }],
52
+ ["UInt32", { min: 0n, max: 4294967295n }],
53
+ ["Int64", { min: -9223372036854775808n, max: 9223372036854775807n }],
54
+ ["UInt64", { min: 0n, max: 18446744073709551615n }],
55
+ ["Single", { min: 0n, max: 0n }], // Float validation handled separately
56
+ ["Double", { min: 0n, max: 0n }], // Float validation handled separately
57
+ ]);
58
+ /**
59
+ * Check if a numeric kind is an integer type (not floating point).
60
+ */
61
+ export const isIntegerKind = (kind) => kind !== "Single" && kind !== "Double";
62
+ /**
63
+ * Check if a numeric kind is a signed type.
64
+ */
65
+ export const isSignedKind = (kind) => kind === "SByte" ||
66
+ kind === "Int16" ||
67
+ kind === "Int32" ||
68
+ kind === "Int64" ||
69
+ kind === "Single" ||
70
+ kind === "Double";
71
+ /**
72
+ * C# binary operator result type promotion.
73
+ * Returns the result type when two numeric kinds are combined with +, -, *, /, %.
74
+ *
75
+ * Rules (per C# spec):
76
+ * 1. If either is double, result is double
77
+ * 2. If either is float, result is float
78
+ * 3. If either is ulong, result is ulong
79
+ * 4. If either is long, result is long
80
+ * 5. If either is uint and other is sbyte/short/int, result is long
81
+ * 6. If either is uint, result is uint
82
+ * 7. Otherwise, result is int (byte, sbyte, short, ushort all promote to int)
83
+ */
84
+ export const getBinaryResultKind = (left, right) => {
85
+ // Rule 1: double dominates
86
+ if (left === "Double" || right === "Double")
87
+ return "Double";
88
+ // Rule 2: float dominates (if no double)
89
+ if (left === "Single" || right === "Single")
90
+ return "Single";
91
+ // Rule 3: ulong dominates (if no floating)
92
+ if (left === "UInt64" || right === "UInt64")
93
+ return "UInt64";
94
+ // Rule 4: long dominates (if no ulong)
95
+ if (left === "Int64" || right === "Int64")
96
+ return "Int64";
97
+ // Rule 5: uint + signed smaller type = long
98
+ const signedSmallerTypes = ["SByte", "Int16", "Int32"];
99
+ if (left === "UInt32" && signedSmallerTypes.includes(right))
100
+ return "Int64";
101
+ if (right === "UInt32" && signedSmallerTypes.includes(left))
102
+ return "Int64";
103
+ // Rule 6: uint dominates (if no above cases)
104
+ if (left === "UInt32" || right === "UInt32")
105
+ return "UInt32";
106
+ // Rule 7: All smaller integer types promote to int
107
+ return "Int32";
108
+ };
109
+ /**
110
+ * Check if a literal value fits within the range of a numeric kind.
111
+ * Returns true if the value is valid for the target kind.
112
+ *
113
+ * For integer kinds: checks exact range
114
+ * For floating kinds: currently always returns true (could add precision checks)
115
+ */
116
+ export const literalFitsInKind = (value, kind) => {
117
+ // Floating point kinds - allow any number for now
118
+ if (kind === "Single" || kind === "Double") {
119
+ return true;
120
+ }
121
+ // For integer kinds, the value must be an integer
122
+ if (!Number.isInteger(value)) {
123
+ return false;
124
+ }
125
+ // Check range
126
+ const range = NUMERIC_RANGES.get(kind);
127
+ if (range === undefined) {
128
+ return false;
129
+ }
130
+ // Convert to bigint for range checking
131
+ const bigValue = BigInt(Math.trunc(value));
132
+ return bigValue >= range.min && bigValue <= range.max;
133
+ };
134
+ /**
135
+ * Check if conversion from source to target is a widening (safe) conversion.
136
+ * Widening never loses data; narrowing may.
137
+ */
138
+ export const isWideningConversion = (source, target) => {
139
+ // Same type - always safe
140
+ if (source === target)
141
+ return true;
142
+ // Widening paths (simplified - C# has more complex rules)
143
+ const wideningPaths = new Map([
144
+ ["SByte", ["Int16", "Int32", "Int64", "Single", "Double"]],
145
+ [
146
+ "Byte",
147
+ [
148
+ "Int16",
149
+ "UInt16",
150
+ "Int32",
151
+ "UInt32",
152
+ "Int64",
153
+ "UInt64",
154
+ "Single",
155
+ "Double",
156
+ ],
157
+ ],
158
+ ["Int16", ["Int32", "Int64", "Single", "Double"]],
159
+ ["UInt16", ["Int32", "UInt32", "Int64", "UInt64", "Single", "Double"]],
160
+ ["Int32", ["Int64", "Single", "Double"]],
161
+ ["UInt32", ["Int64", "UInt64", "Single", "Double"]],
162
+ ["Int64", ["Single", "Double"]],
163
+ ["UInt64", ["Single", "Double"]],
164
+ ["Single", ["Double"]],
165
+ ["Double", []],
166
+ ]);
167
+ const targets = wideningPaths.get(source);
168
+ return targets !== undefined && targets.includes(target);
169
+ };
170
+ //# sourceMappingURL=numeric-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-kind.js","sourceRoot":"","sources":["../../../src/ir/types/numeric-kind.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  import { IrType } from "./ir-types.js";
5
5
  import { IrPattern, IrParameter, IrTypeParameter, IrAccessibility, IrInterfaceMember } from "./helpers.js";
6
6
  import { IrExpression } from "./expressions.js";
7
- export type IrStatement = IrVariableDeclaration | IrFunctionDeclaration | IrClassDeclaration | IrInterfaceDeclaration | IrEnumDeclaration | IrTypeAliasDeclaration | IrExpressionStatement | IrReturnStatement | IrIfStatement | IrWhileStatement | IrForStatement | IrForOfStatement | IrSwitchStatement | IrThrowStatement | IrTryStatement | IrBlockStatement | IrBreakStatement | IrContinueStatement | IrEmptyStatement;
7
+ export type IrStatement = IrVariableDeclaration | IrFunctionDeclaration | IrClassDeclaration | IrInterfaceDeclaration | IrEnumDeclaration | IrTypeAliasDeclaration | IrExpressionStatement | IrReturnStatement | IrIfStatement | IrWhileStatement | IrForStatement | IrForOfStatement | IrSwitchStatement | IrThrowStatement | IrTryStatement | IrBlockStatement | IrBreakStatement | IrContinueStatement | IrEmptyStatement | IrYieldStatement | IrGeneratorReturnStatement;
8
8
  export type IrVariableDeclaration = {
9
9
  readonly kind: "variableDeclaration";
10
10
  readonly declarationKind: "const" | "let" | "var";
@@ -138,6 +138,8 @@ export type IrForOfStatement = {
138
138
  readonly variable: IrPattern;
139
139
  readonly expression: IrExpression;
140
140
  readonly body: IrStatement;
141
+ /** True for `for await (... of ...)` - async iteration */
142
+ readonly isAwait: boolean;
141
143
  };
142
144
  export type IrSwitchStatement = {
143
145
  readonly kind: "switchStatement";
@@ -179,4 +181,39 @@ export type IrContinueStatement = {
179
181
  export type IrEmptyStatement = {
180
182
  readonly kind: "emptyStatement";
181
183
  };
184
+ /**
185
+ * Lowered yield statement for bidirectional generators.
186
+ * Created by yield-lowering pass from IrYieldExpression patterns:
187
+ * - `yield expr;` → receiveTarget undefined
188
+ * - `const x = yield expr;` → receiveTarget = identifierPattern("x")
189
+ * - `x = yield expr;` → receiveTarget = identifierPattern("x")
190
+ * - `const {a, b} = yield expr;` → receiveTarget = objectPattern(...)
191
+ */
192
+ export type IrYieldStatement = {
193
+ readonly kind: "yieldStatement";
194
+ /** Value to yield (maps to exchange.Output) */
195
+ readonly output?: IrExpression;
196
+ /** True for yield*, false for yield */
197
+ readonly delegate: boolean;
198
+ /** Where to assign received Input value after resumption */
199
+ readonly receiveTarget?: IrPattern;
200
+ /** Type of the received value (from Generator<Y, R, TNext>) */
201
+ readonly receivedType?: IrType;
202
+ };
203
+ /**
204
+ * Lowered return statement for generators with TReturn.
205
+ * Created by yield-lowering pass from `return expr;` statements.
206
+ *
207
+ * In generators, `return expr;` is transformed to:
208
+ * - Set __returnValue = expr (captured in closure)
209
+ * - Emit yield break; to terminate iteration
210
+ *
211
+ * This allows the wrapper's next() method to return the final value
212
+ * via the _getReturnValue closure when iteration completes.
213
+ */
214
+ export type IrGeneratorReturnStatement = {
215
+ readonly kind: "generatorReturnStatement";
216
+ /** Expression to capture as the generator's return value */
217
+ readonly expression?: IrExpression;
218
+ };
182
219
  //# sourceMappingURL=statements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/ir/types/statements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/ir/types/statements.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Intermediate Representation (IR) types for Tsonic compiler
3
3
  * Main dispatcher - re-exports from specialized modules
4
4
  */
5
- export type { IrModule, IrImport, IrImportSpecifier, IrExport, IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./types/index.js";
5
+ export type { IrModule, IrImport, IrImportSpecifier, IrExport, IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrYieldStatement, IrGeneratorReturnStatement, IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrNumericNarrowingExpression, NumericProof, ProofSource, ComputedAccessKind, IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, NumericKind, } from "./types/index.js";
6
6
  export { isStatement, isExpression } from "./types/guards.js";
7
+ export { TSONIC_TO_NUMERIC_KIND, NUMERIC_KIND_TO_CSHARP, NUMERIC_RANGES, isIntegerKind, isSignedKind, getBinaryResultKind, literalFitsInKind, isWideningConversion, } from "./types/index.js";
7
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAEV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EAER,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAEjB,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EAEX,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAEV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EAER,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAE1B,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,YAAY,EACZ,WAAW,EACX,kBAAkB,EAElB,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EAEX,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EAEpB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
package/dist/ir/types.js CHANGED
@@ -4,4 +4,6 @@
4
4
  */
5
5
  // Re-export type guards
6
6
  export { isStatement, isExpression } from "./types/guards.js";
7
+ // Re-export numeric utilities
8
+ export { TSONIC_TO_NUMERIC_KIND, NUMERIC_KIND_TO_CSHARP, NUMERIC_RANGES, isIntegerKind, isSignedKind, getBinaryResultKind, literalFitsInKind, isWideningConversion, } from "./types/index.js";
7
9
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6FH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqGH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * IR Validation exports
3
+ */
4
+ export { validateIrSoundness, type SoundnessValidationResult, } from "./soundness-gate.js";
5
+ export { runNumericProofPass, type NumericProofResult, } from "./numeric-proof-pass.js";
6
+ export { runYieldLoweringPass, type YieldLoweringResult, } from "./yield-lowering-pass.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/validation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,GAC/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * IR Validation exports
3
+ */
4
+ export { validateIrSoundness, } from "./soundness-gate.js";
5
+ export { runNumericProofPass, } from "./numeric-proof-pass.js";
6
+ export { runYieldLoweringPass, } from "./yield-lowering-pass.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/validation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Numeric Invariants Tests
3
+ *
4
+ * These tests validate critical compiler invariants for the numeric proof system:
5
+ *
6
+ * INVARIANT 1: numericIntent can ONLY come from numericNarrowing expressions
7
+ * INVARIANT 2: Array indices must have Int32 proof (TSN5107)
8
+ * INVARIANT 3: Literals must be in range for their target type (TSN5102)
9
+ * INVARIANT 4: Binary operations follow C# promotion rules (TSN5103)
10
+ *
11
+ * These tests act as regression guards - any refactor that breaks these
12
+ * invariants will cause compilation failures or runtime unsoundness.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=numeric-invariants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-invariants.test.d.ts","sourceRoot":"","sources":["../../../src/ir/validation/numeric-invariants.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}