@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,37 @@
1
+ /**
2
+ * Numeric Proof Pass - HARD GATE for numeric type narrowings
3
+ *
4
+ * This pass runs before emission and:
5
+ * 1. Validates all numeric narrowings are provable
6
+ * 2. Attaches NumericProof to validated expressions
7
+ * 3. Emits error diagnostics for unprovable narrowings
8
+ *
9
+ * CRITICAL: If this pass emits ANY errors, the emitter MUST NOT run.
10
+ * Unlike the previous implementation, this pass does NOT allow fallback casts.
11
+ * If we cannot prove a narrowing, compilation FAILS.
12
+ *
13
+ * This follows Alice's "Provably-Sound Numeric Types" specification:
14
+ * "If Tsonic cannot prove a numeric narrowing is sound, it must fail compilation."
15
+ */
16
+ import { Diagnostic } from "../../types/diagnostic.js";
17
+ import { IrModule } from "../types.js";
18
+ /**
19
+ * Result of numeric proof validation
20
+ */
21
+ export type NumericProofResult = {
22
+ readonly ok: boolean;
23
+ readonly module: IrModule;
24
+ readonly diagnostics: readonly Diagnostic[];
25
+ };
26
+ /**
27
+ * Run numeric proof validation on all modules.
28
+ *
29
+ * HARD GATE: If any diagnostics are returned, the emitter MUST NOT run.
30
+ * This is not a warning system - unprovable narrowings are compilation errors.
31
+ */
32
+ export declare const runNumericProofPass: (modules: readonly IrModule[]) => {
33
+ readonly ok: boolean;
34
+ readonly modules: readonly IrModule[];
35
+ readonly diagnostics: readonly Diagnostic[];
36
+ };
37
+ //# sourceMappingURL=numeric-proof-pass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-proof-pass.d.ts","sourceRoot":"","sources":["../../../src/ir/validation/numeric-proof-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,UAAU,EAGX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,QAAQ,EAWT,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C,CAAC;AAumCF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,SAAS,QAAQ,EAAE,KAC3B;IACD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAgB7C,CAAC"}