@tsonic/frontend 0.0.4 → 0.0.11

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 (193) 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/exports.d.ts.map +1 -1
  7. package/dist/ir/builder/exports.js +8 -6
  8. package/dist/ir/builder/exports.js.map +1 -1
  9. package/dist/ir/builder/imports.d.ts.map +1 -1
  10. package/dist/ir/builder/imports.js +6 -6
  11. package/dist/ir/builder/imports.js.map +1 -1
  12. package/dist/ir/builder/statements.d.ts +7 -1
  13. package/dist/ir/builder/statements.d.ts.map +1 -1
  14. package/dist/ir/builder/statements.js +18 -5
  15. package/dist/ir/builder/statements.js.map +1 -1
  16. package/dist/ir/builder.test.js +70 -5
  17. package/dist/ir/builder.test.js.map +1 -1
  18. package/dist/ir/converters/anonymous-synthesis.d.ts +76 -0
  19. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -0
  20. package/dist/ir/converters/anonymous-synthesis.js +307 -0
  21. package/dist/ir/converters/anonymous-synthesis.js.map +1 -0
  22. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  23. package/dist/ir/converters/expressions/access.js +65 -2
  24. package/dist/ir/converters/expressions/access.js.map +1 -1
  25. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  26. package/dist/ir/converters/expressions/calls.js +96 -1
  27. package/dist/ir/converters/expressions/calls.js.map +1 -1
  28. package/dist/ir/converters/expressions/collections.d.ts +3 -0
  29. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  30. package/dist/ir/converters/expressions/collections.js +43 -2
  31. package/dist/ir/converters/expressions/collections.js.map +1 -1
  32. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  33. package/dist/ir/converters/expressions/functions.js +52 -5
  34. package/dist/ir/converters/expressions/functions.js.map +1 -1
  35. package/dist/ir/converters/expressions/helpers.d.ts +10 -0
  36. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  37. package/dist/ir/converters/expressions/helpers.js +173 -7
  38. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  39. package/dist/ir/converters/expressions/index.d.ts +1 -1
  40. package/dist/ir/converters/expressions/index.d.ts.map +1 -1
  41. package/dist/ir/converters/expressions/index.js +1 -1
  42. package/dist/ir/converters/expressions/index.js.map +1 -1
  43. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  44. package/dist/ir/converters/expressions/literals.js +2 -1
  45. package/dist/ir/converters/expressions/literals.js.map +1 -1
  46. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +14 -0
  47. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -0
  48. package/dist/ir/converters/expressions/numeric-recovery.test.js +286 -0
  49. package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -0
  50. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  51. package/dist/ir/converters/expressions/operators.js +16 -2
  52. package/dist/ir/converters/expressions/operators.js.map +1 -1
  53. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  54. package/dist/ir/converters/expressions/other.js +4 -1
  55. package/dist/ir/converters/expressions/other.js.map +1 -1
  56. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  57. package/dist/ir/converters/statements/control/conditionals.js +4 -6
  58. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  59. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  60. package/dist/ir/converters/statements/control/loops.js +6 -5
  61. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  62. package/dist/ir/converters/statements/declarations/interfaces.d.ts +4 -3
  63. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  64. package/dist/ir/converters/statements/declarations/interfaces.js +55 -1
  65. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  66. package/dist/ir/converters/statements/declarations/type-aliases.d.ts +8 -3
  67. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  68. package/dist/ir/converters/statements/declarations/type-aliases.js +12 -2
  69. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  70. package/dist/ir/converters/synthetic-types.d.ts +38 -0
  71. package/dist/ir/converters/synthetic-types.d.ts.map +1 -0
  72. package/dist/ir/converters/synthetic-types.js +123 -0
  73. package/dist/ir/converters/synthetic-types.js.map +1 -0
  74. package/dist/ir/expression-converter.d.ts.map +1 -1
  75. package/dist/ir/expression-converter.js +81 -9
  76. package/dist/ir/expression-converter.js.map +1 -1
  77. package/dist/ir/statement-converter.d.ts +16 -1
  78. package/dist/ir/statement-converter.d.ts.map +1 -1
  79. package/dist/ir/statement-converter.js +32 -0
  80. package/dist/ir/statement-converter.js.map +1 -1
  81. package/dist/ir/type-converter/arrays.d.ts.map +1 -1
  82. package/dist/ir/type-converter/arrays.js +1 -0
  83. package/dist/ir/type-converter/arrays.js.map +1 -1
  84. package/dist/ir/type-converter/index.d.ts +1 -1
  85. package/dist/ir/type-converter/index.d.ts.map +1 -1
  86. package/dist/ir/type-converter/index.js +1 -1
  87. package/dist/ir/type-converter/index.js.map +1 -1
  88. package/dist/ir/type-converter/inference.d.ts +12 -0
  89. package/dist/ir/type-converter/inference.d.ts.map +1 -1
  90. package/dist/ir/type-converter/inference.js +172 -23
  91. package/dist/ir/type-converter/inference.js.map +1 -1
  92. package/dist/ir/type-converter/literals.d.ts.map +1 -1
  93. package/dist/ir/type-converter/literals.js +2 -1
  94. package/dist/ir/type-converter/literals.js.map +1 -1
  95. package/dist/ir/type-converter/objects.d.ts.map +1 -1
  96. package/dist/ir/type-converter/objects.js +2 -1
  97. package/dist/ir/type-converter/objects.js.map +1 -1
  98. package/dist/ir/type-converter/orchestrator.d.ts +2 -2
  99. package/dist/ir/type-converter/orchestrator.d.ts.map +1 -1
  100. package/dist/ir/type-converter/orchestrator.js +55 -1
  101. package/dist/ir/type-converter/orchestrator.js.map +1 -1
  102. package/dist/ir/type-converter/references.d.ts.map +1 -1
  103. package/dist/ir/type-converter/references.js +14 -18
  104. package/dist/ir/type-converter/references.js.map +1 -1
  105. package/dist/ir/type-converter.d.ts +1 -1
  106. package/dist/ir/type-converter.d.ts.map +1 -1
  107. package/dist/ir/type-converter.js +1 -1
  108. package/dist/ir/type-converter.js.map +1 -1
  109. package/dist/ir/types/expressions.d.ts +110 -1
  110. package/dist/ir/types/expressions.d.ts.map +1 -1
  111. package/dist/ir/types/guards.d.ts.map +1 -1
  112. package/dist/ir/types/guards.js +2 -0
  113. package/dist/ir/types/guards.js.map +1 -1
  114. package/dist/ir/types/index.d.ts +5 -3
  115. package/dist/ir/types/index.d.ts.map +1 -1
  116. package/dist/ir/types/index.js +1 -0
  117. package/dist/ir/types/index.js.map +1 -1
  118. package/dist/ir/types/ir-types.d.ts +33 -1
  119. package/dist/ir/types/ir-types.d.ts.map +1 -1
  120. package/dist/ir/types/numeric-kind.d.ts +68 -0
  121. package/dist/ir/types/numeric-kind.d.ts.map +1 -0
  122. package/dist/ir/types/numeric-kind.js +170 -0
  123. package/dist/ir/types/numeric-kind.js.map +1 -0
  124. package/dist/ir/types/statements.d.ts +38 -1
  125. package/dist/ir/types/statements.d.ts.map +1 -1
  126. package/dist/ir/types.d.ts +2 -1
  127. package/dist/ir/types.d.ts.map +1 -1
  128. package/dist/ir/types.js +2 -0
  129. package/dist/ir/types.js.map +1 -1
  130. package/dist/ir/validation/index.d.ts +7 -0
  131. package/dist/ir/validation/index.d.ts.map +1 -0
  132. package/dist/ir/validation/index.js +7 -0
  133. package/dist/ir/validation/index.js.map +1 -0
  134. package/dist/ir/validation/numeric-invariants.test.d.ts +15 -0
  135. package/dist/ir/validation/numeric-invariants.test.d.ts.map +1 -0
  136. package/dist/ir/validation/numeric-invariants.test.js +598 -0
  137. package/dist/ir/validation/numeric-invariants.test.js.map +1 -0
  138. package/dist/ir/validation/numeric-proof-pass.d.ts +37 -0
  139. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -0
  140. package/dist/ir/validation/numeric-proof-pass.js +889 -0
  141. package/dist/ir/validation/numeric-proof-pass.js.map +1 -0
  142. package/dist/ir/validation/soundness-gate.d.ts +26 -0
  143. package/dist/ir/validation/soundness-gate.d.ts.map +1 -0
  144. package/dist/ir/validation/soundness-gate.js +551 -0
  145. package/dist/ir/validation/soundness-gate.js.map +1 -0
  146. package/dist/ir/validation/soundness-gate.test.d.ts +13 -0
  147. package/dist/ir/validation/soundness-gate.test.d.ts.map +1 -0
  148. package/dist/ir/validation/soundness-gate.test.js +315 -0
  149. package/dist/ir/validation/soundness-gate.test.js.map +1 -0
  150. package/dist/ir/validation/yield-lowering-pass.d.ts +40 -0
  151. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -0
  152. package/dist/ir/validation/yield-lowering-pass.js +548 -0
  153. package/dist/ir/validation/yield-lowering-pass.js.map +1 -0
  154. package/dist/ir/validation/yield-lowering-pass.test.d.ts +12 -0
  155. package/dist/ir/validation/yield-lowering-pass.test.d.ts.map +1 -0
  156. package/dist/ir/validation/yield-lowering-pass.test.js +761 -0
  157. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -0
  158. package/dist/program/bindings.d.ts +5 -0
  159. package/dist/program/bindings.d.ts.map +1 -1
  160. package/dist/program/bindings.js +12 -1
  161. package/dist/program/bindings.js.map +1 -1
  162. package/dist/program/dependency-graph.d.ts +3 -0
  163. package/dist/program/dependency-graph.d.ts.map +1 -1
  164. package/dist/program/dependency-graph.js +28 -4
  165. package/dist/program/dependency-graph.js.map +1 -1
  166. package/dist/program/index.d.ts +1 -1
  167. package/dist/program/index.d.ts.map +1 -1
  168. package/dist/program/index.js.map +1 -1
  169. package/dist/program.d.ts +1 -0
  170. package/dist/program.d.ts.map +1 -1
  171. package/dist/program.js.map +1 -1
  172. package/dist/resolver/clr-bindings-resolver.d.ts +9 -0
  173. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  174. package/dist/resolver/clr-bindings-resolver.js +52 -3
  175. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  176. package/dist/types/diagnostic.d.ts +1 -1
  177. package/dist/types/diagnostic.d.ts.map +1 -1
  178. package/dist/types/diagnostic.js.map +1 -1
  179. package/dist/validation/static-safety.d.ts +6 -1
  180. package/dist/validation/static-safety.d.ts.map +1 -1
  181. package/dist/validation/static-safety.js +144 -36
  182. package/dist/validation/static-safety.js.map +1 -1
  183. package/dist/validation/unsupported-utility-types.d.ts +38 -0
  184. package/dist/validation/unsupported-utility-types.d.ts.map +1 -0
  185. package/dist/validation/unsupported-utility-types.js +53 -0
  186. package/dist/validation/unsupported-utility-types.js.map +1 -0
  187. package/dist/validator.test.js +304 -14
  188. package/dist/validator.test.js.map +1 -1
  189. package/package.json +1 -1
  190. package/dist/types/parameter-modifiers.d.ts +0 -55
  191. package/dist/types/parameter-modifiers.d.ts.map +0 -1
  192. package/dist/types/parameter-modifiers.js +0 -148
  193. package/dist/types/parameter-modifiers.js.map +0 -1
@@ -3,9 +3,11 @@
3
3
  * Intermediate Representation (IR) types for Tsonic compiler
4
4
  */
5
5
  export type { IrModule, IrImport, IrImportSpecifier, IrExport, } from "./module.js";
6
- export type { 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, } from "./statements.js";
7
- export type { IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, } from "./expressions.js";
8
- export type { IrType, IrPrimitiveType, IrReferenceType, IrTypeParameterType, IrArrayType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, } from "./ir-types.js";
6
+ export type { 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, } from "./statements.js";
7
+ export type { 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, } from "./expressions.js";
8
+ export type { IrType, IrPrimitiveType, IrReferenceType, IrTypeParameterType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, } from "./ir-types.js";
9
9
  export type { IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./helpers.js";
10
10
  export { isStatement, isExpression } from "./guards.js";
11
+ export type { NumericKind } from "./numeric-kind.js";
12
+ export { TSONIC_TO_NUMERIC_KIND, NUMERIC_KIND_TO_CSHARP, NUMERIC_RANGES, isIntegerKind, isSignedKind, getBinaryResultKind, literalFitsInKind, isWideningConversion, } from "./numeric-kind.js";
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,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,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,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,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,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,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,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,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,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,GACnB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,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,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC"}
@@ -4,4 +4,5 @@
4
4
  */
5
5
  // Type guards
6
6
  export { isStatement, isExpression } from "./guards.js";
7
+ export { TSONIC_TO_NUMERIC_KIND, NUMERIC_KIND_TO_CSHARP, NUMERIC_RANGES, isIntegerKind, isSignedKind, getBinaryResultKind, literalFitsInKind, isWideningConversion, } from "./numeric-kind.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwGH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+GH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIxD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC"}
@@ -2,10 +2,20 @@
2
2
  * Type system types for IR (IrType and its variants)
3
3
  */
4
4
  import { IrParameter, IrInterfaceMember } from "./helpers.js";
5
- export type IrType = IrPrimitiveType | IrReferenceType | IrTypeParameterType | IrArrayType | IrFunctionType | IrObjectType | IrDictionaryType | IrUnionType | IrIntersectionType | IrLiteralType | IrAnyType | IrUnknownType | IrVoidType | IrNeverType;
5
+ import { NumericKind } from "./numeric-kind.js";
6
+ export type IrType = IrPrimitiveType | IrReferenceType | IrTypeParameterType | IrArrayType | IrTupleType | IrFunctionType | IrObjectType | IrDictionaryType | IrUnionType | IrIntersectionType | IrLiteralType | IrAnyType | IrUnknownType | IrVoidType | IrNeverType;
6
7
  export type IrPrimitiveType = {
7
8
  readonly kind: "primitiveType";
8
9
  readonly name: "string" | "number" | "boolean" | "null" | "undefined";
10
+ /**
11
+ * For "number" primitives, captures the programmer's declared numeric intent.
12
+ * This is populated when the TypeScript source uses a type annotation like
13
+ * `int`, `long`, `byte`, etc. from @tsonic/types.
14
+ *
15
+ * undefined means generic number (emits as double).
16
+ * Only meaningful when name is "number".
17
+ */
18
+ readonly numericIntent?: NumericKind;
9
19
  };
10
20
  export type IrReferenceType = {
11
21
  readonly kind: "referenceType";
@@ -27,6 +37,28 @@ export type IrTypeParameterType = {
27
37
  export type IrArrayType = {
28
38
  readonly kind: "arrayType";
29
39
  readonly elementType: IrType;
40
+ /**
41
+ * Set to "explicit" when the array type came from an explicit T[] annotation.
42
+ * Undefined when the type was inferred.
43
+ *
44
+ * In dotnet mode:
45
+ * - origin: "explicit" → emit native CLR array (T[])
46
+ * - origin: undefined → emit List<T>
47
+ */
48
+ readonly origin?: "explicit";
49
+ };
50
+ /**
51
+ * Tuple type for fixed-length arrays with heterogeneous element types
52
+ *
53
+ * Examples:
54
+ * - `[string, number]` → IrTupleType { elementTypes: [string, number] }
55
+ * - `[boolean, string, number]` → IrTupleType { elementTypes: [boolean, string, number] }
56
+ *
57
+ * Emits to C# ValueTuple<T1, T2, ...>.
58
+ */
59
+ export type IrTupleType = {
60
+ readonly kind: "tupleType";
61
+ readonly elementTypes: readonly IrType[];
30
62
  };
31
63
  export type IrFunctionType = {
32
64
  readonly kind: "functionType";
@@ -1 +1 @@
1
- {"version":3,"file":"ir-types.d.ts","sourceRoot":"","sources":["../../../src/ir/types/ir-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,MAAM,GACd,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,WAAW,GACX,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,SAAS,GACT,aAAa,GACb,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"ir-types.d.ts","sourceRoot":"","sources":["../../../src/ir/types/ir-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
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
+ * Represents all CLR numeric types that Tsonic supports.
12
+ * These map to specific C# primitive types.
13
+ */
14
+ export type NumericKind = "SByte" | "Byte" | "Int16" | "UInt16" | "Int32" | "UInt32" | "Int64" | "UInt64" | "Single" | "Double";
15
+ /**
16
+ * Maps Tsonic type alias names to CLR numeric kinds.
17
+ * Used to recognize numeric intent from TypeScript annotations.
18
+ */
19
+ export declare const TSONIC_TO_NUMERIC_KIND: ReadonlyMap<string, NumericKind>;
20
+ /**
21
+ * Maps CLR numeric kinds back to C# type names for emission.
22
+ */
23
+ export declare const NUMERIC_KIND_TO_CSHARP: ReadonlyMap<NumericKind, string>;
24
+ /**
25
+ * Range bounds for compile-time literal validation.
26
+ * Uses bigint for exact integer range checking.
27
+ * Float ranges are marked as 0n - they require different validation.
28
+ */
29
+ export declare const NUMERIC_RANGES: ReadonlyMap<NumericKind, {
30
+ readonly min: bigint;
31
+ readonly max: bigint;
32
+ }>;
33
+ /**
34
+ * Check if a numeric kind is an integer type (not floating point).
35
+ */
36
+ export declare const isIntegerKind: (kind: NumericKind) => boolean;
37
+ /**
38
+ * Check if a numeric kind is a signed type.
39
+ */
40
+ export declare const isSignedKind: (kind: NumericKind) => boolean;
41
+ /**
42
+ * C# binary operator result type promotion.
43
+ * Returns the result type when two numeric kinds are combined with +, -, *, /, %.
44
+ *
45
+ * Rules (per C# spec):
46
+ * 1. If either is double, result is double
47
+ * 2. If either is float, result is float
48
+ * 3. If either is ulong, result is ulong
49
+ * 4. If either is long, result is long
50
+ * 5. If either is uint and other is sbyte/short/int, result is long
51
+ * 6. If either is uint, result is uint
52
+ * 7. Otherwise, result is int (byte, sbyte, short, ushort all promote to int)
53
+ */
54
+ export declare const getBinaryResultKind: (left: NumericKind, right: NumericKind) => NumericKind;
55
+ /**
56
+ * Check if a literal value fits within the range of a numeric kind.
57
+ * Returns true if the value is valid for the target kind.
58
+ *
59
+ * For integer kinds: checks exact range
60
+ * For floating kinds: currently always returns true (could add precision checks)
61
+ */
62
+ export declare const literalFitsInKind: (value: number, kind: NumericKind) => boolean;
63
+ /**
64
+ * Check if conversion from source to target is a widening (safe) conversion.
65
+ * Widening never loses data; narrowing may.
66
+ */
67
+ export declare const isWideningConversion: (source: NumericKind, target: NumericKind) => boolean;
68
+ //# sourceMappingURL=numeric-kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-kind.d.ts","sourceRoot":"","sources":["../../../src/ir/types/numeric-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAanE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,CAanE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CACtC,WAAW,EACX;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAY9C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,WAAW,KAAG,OACV,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,WAAW,KAAG,OAM9B,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,WAAW,EACjB,OAAO,WAAW,KACjB,WAuBF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,MAAM,WAAW,KAChB,OAoBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,WAAW,EACnB,QAAQ,WAAW,KAClB,OAiCF,CAAC"}
@@ -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":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EACL,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,kBAAkB,GAClB,sBAAsB,GACtB,iBAAiB,GACjB,sBAAsB,GACtB,qBAAqB,GACrB,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,0BAA0B,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,yGAAyG;IACzG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,qBAAqB,GACrB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC,iGAAiG;IACjG,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC,qGAAqG;IACrG,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,YAAY,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;CACpC,CAAC"}
@@ -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, 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,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;AA4FH,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"}