@tsonic/frontend 0.0.13 → 0.0.15
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/graph/builder.js +2 -2
- package/dist/graph/builder.js.map +1 -1
- package/dist/graph/extraction/imports.js +1 -1
- package/dist/graph/extraction/imports.js.map +1 -1
- package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
- package/dist/graph/extraction/orchestrator.js +1 -1
- package/dist/graph/extraction/orchestrator.js.map +1 -1
- package/dist/ir/binding/index.d.ts +134 -0
- package/dist/ir/binding/index.d.ts.map +1 -0
- package/dist/ir/binding/index.js +725 -0
- package/dist/ir/binding/index.js.map +1 -0
- package/dist/ir/binding-resolution.test.js +193 -52
- package/dist/ir/binding-resolution.test.js.map +1 -1
- package/dist/ir/builder/exports.d.ts +20 -2
- package/dist/ir/builder/exports.d.ts.map +1 -1
- package/dist/ir/builder/exports.js +65 -6
- package/dist/ir/builder/exports.js.map +1 -1
- package/dist/ir/builder/imports.d.ts +9 -5
- package/dist/ir/builder/imports.d.ts.map +1 -1
- package/dist/ir/builder/imports.js +20 -31
- package/dist/ir/builder/imports.js.map +1 -1
- package/dist/ir/builder/orchestrator.d.ts +10 -1
- package/dist/ir/builder/orchestrator.d.ts.map +1 -1
- package/dist/ir/builder/orchestrator.js +25 -14
- package/dist/ir/builder/orchestrator.js.map +1 -1
- package/dist/ir/builder/statements.d.ts +7 -1
- package/dist/ir/builder/statements.d.ts.map +1 -1
- package/dist/ir/builder/statements.js +7 -2
- package/dist/ir/builder/statements.js.map +1 -1
- package/dist/ir/builder/types.d.ts +3 -0
- package/dist/ir/builder/types.d.ts.map +1 -1
- package/dist/ir/builder/validation.d.ts +4 -1
- package/dist/ir/builder/validation.d.ts.map +1 -1
- package/dist/ir/builder/validation.js +37 -37
- package/dist/ir/builder/validation.js.map +1 -1
- package/dist/ir/builder.test.js +54 -111
- package/dist/ir/builder.test.js.map +1 -1
- package/dist/ir/clr-type-mappings.d.ts +42 -0
- package/dist/ir/clr-type-mappings.d.ts.map +1 -0
- package/dist/ir/clr-type-mappings.js +139 -0
- package/dist/ir/clr-type-mappings.js.map +1 -0
- package/dist/ir/converters/anonymous-synthesis.d.ts +30 -8
- package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -1
- package/dist/ir/converters/anonymous-synthesis.js +46 -55
- package/dist/ir/converters/anonymous-synthesis.js.map +1 -1
- package/dist/ir/converters/context.d.ts +40 -0
- package/dist/ir/converters/context.d.ts.map +1 -0
- package/dist/ir/converters/context.js +24 -0
- package/dist/ir/converters/context.js.map +1 -0
- package/dist/ir/converters/expressions/access.d.ts +6 -1
- package/dist/ir/converters/expressions/access.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access.js +239 -15
- package/dist/ir/converters/expressions/access.js.map +1 -1
- package/dist/ir/converters/expressions/calls.d.ts +24 -3
- package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
- package/dist/ir/converters/expressions/calls.js +450 -385
- package/dist/ir/converters/expressions/calls.js.map +1 -1
- package/dist/ir/converters/expressions/collections.d.ts +16 -3
- package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
- package/dist/ir/converters/expressions/collections.js +300 -46
- package/dist/ir/converters/expressions/collections.js.map +1 -1
- package/dist/ir/converters/expressions/functions.d.ts +10 -3
- package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
- package/dist/ir/converters/expressions/functions.js +140 -32
- package/dist/ir/converters/expressions/functions.js.map +1 -1
- package/dist/ir/converters/expressions/helpers.d.ts +22 -23
- package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
- package/dist/ir/converters/expressions/helpers.js +242 -239
- package/dist/ir/converters/expressions/helpers.js.map +1 -1
- package/dist/ir/converters/expressions/index.d.ts +1 -1
- package/dist/ir/converters/expressions/index.d.ts.map +1 -1
- package/dist/ir/converters/expressions/index.js +1 -1
- package/dist/ir/converters/expressions/index.js.map +1 -1
- package/dist/ir/converters/expressions/literals.d.ts +12 -12
- package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
- package/dist/ir/converters/expressions/literals.js +62 -17
- package/dist/ir/converters/expressions/literals.js.map +1 -1
- package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +5 -2
- package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -1
- package/dist/ir/converters/expressions/numeric-recovery.test.js +62 -49
- package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -1
- package/dist/ir/converters/expressions/operators.d.ts +13 -4
- package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
- package/dist/ir/converters/expressions/operators.js +179 -33
- package/dist/ir/converters/expressions/operators.js.map +1 -1
- package/dist/ir/converters/expressions/other.d.ts +11 -3
- package/dist/ir/converters/expressions/other.d.ts.map +1 -1
- package/dist/ir/converters/expressions/other.js +26 -10
- package/dist/ir/converters/expressions/other.js.map +1 -1
- package/dist/ir/converters/statements/control/blocks.d.ts +8 -2
- package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/blocks.js +7 -2
- package/dist/ir/converters/statements/control/blocks.js.map +1 -1
- package/dist/ir/converters/statements/control/conditionals.d.ts +14 -4
- package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/conditionals.js +19 -10
- package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
- package/dist/ir/converters/statements/control/exceptions.d.ts +10 -3
- package/dist/ir/converters/statements/control/exceptions.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/exceptions.js +13 -7
- package/dist/ir/converters/statements/control/exceptions.js.map +1 -1
- package/dist/ir/converters/statements/control/loops.d.ts +16 -5
- package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/loops.js +25 -15
- package/dist/ir/converters/statements/control/loops.js.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/constructors.d.ts +3 -2
- package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/constructors.js +11 -7
- package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/methods.d.ts +2 -1
- package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/methods.js +63 -11
- package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts +2 -1
- package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/orchestrator.js +60 -40
- package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +6 -2
- package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/override-detection.js +49 -50
- package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/properties.d.ts +9 -1
- package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/classes/properties.js +119 -16
- package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
- package/dist/ir/converters/statements/declarations/enums.d.ts +2 -1
- package/dist/ir/converters/statements/declarations/enums.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/enums.js +8 -2
- package/dist/ir/converters/statements/declarations/enums.js.map +1 -1
- package/dist/ir/converters/statements/declarations/functions.d.ts +2 -1
- package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/functions.js +11 -6
- package/dist/ir/converters/statements/declarations/functions.js.map +1 -1
- package/dist/ir/converters/statements/declarations/index.d.ts +3 -1
- package/dist/ir/converters/statements/declarations/index.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/index.js +3 -1
- package/dist/ir/converters/statements/declarations/index.js.map +1 -1
- package/dist/ir/converters/statements/declarations/interfaces.d.ts +3 -2
- package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/interfaces.js +26 -20
- package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
- package/dist/ir/converters/statements/declarations/registry.d.ts +72 -0
- package/dist/ir/converters/statements/declarations/registry.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/registry.js +92 -0
- package/dist/ir/converters/statements/declarations/registry.js.map +1 -1
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts +2 -1
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/type-aliases.js +6 -4
- package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
- package/dist/ir/converters/statements/declarations/variables.d.ts +11 -1
- package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/variables.js +123 -19
- package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
- package/dist/ir/converters/statements/declarations.d.ts +4 -1
- package/dist/ir/converters/statements/declarations.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations.js +4 -1
- package/dist/ir/converters/statements/declarations.js.map +1 -1
- package/dist/ir/converters/statements/helpers.d.ts +4 -3
- package/dist/ir/converters/statements/helpers.d.ts.map +1 -1
- package/dist/ir/converters/statements/helpers.js +55 -31
- package/dist/ir/converters/statements/helpers.js.map +1 -1
- package/dist/ir/converters/statements/index.d.ts +1 -1
- package/dist/ir/converters/statements/index.d.ts.map +1 -1
- package/dist/ir/converters/statements/index.js +2 -1
- package/dist/ir/converters/statements/index.js.map +1 -1
- package/dist/ir/expression-converter.d.ts +10 -3
- package/dist/ir/expression-converter.d.ts.map +1 -1
- package/dist/ir/expression-converter.js +150 -56
- package/dist/ir/expression-converter.js.map +1 -1
- package/dist/ir/hierarchical-bindings-e2e.test.js +10 -6
- package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -1
- package/dist/ir/index.d.ts +5 -0
- package/dist/ir/index.d.ts.map +1 -1
- package/dist/ir/index.js +5 -0
- package/dist/ir/index.js.map +1 -1
- package/dist/ir/no-ts-type-inference.test.d.ts +17 -0
- package/dist/ir/no-ts-type-inference.test.d.ts.map +1 -0
- package/dist/ir/no-ts-type-inference.test.js +171 -0
- package/dist/ir/no-ts-type-inference.test.js.map +1 -0
- package/dist/ir/program-context.d.ts +74 -0
- package/dist/ir/program-context.d.ts.map +1 -0
- package/dist/ir/program-context.js +286 -0
- package/dist/ir/program-context.js.map +1 -0
- package/dist/ir/statement-converter.d.ts +14 -4
- package/dist/ir/statement-converter.d.ts.map +1 -1
- package/dist/ir/statement-converter.js +31 -21
- package/dist/ir/statement-converter.js.map +1 -1
- package/dist/ir/syntax/binding-patterns.d.ts +22 -0
- package/dist/ir/syntax/binding-patterns.d.ts.map +1 -0
- package/dist/ir/syntax/binding-patterns.js +92 -0
- package/dist/ir/syntax/binding-patterns.js.map +1 -0
- package/dist/ir/thisarg-inference.test.d.ts +8 -0
- package/dist/ir/thisarg-inference.test.d.ts.map +1 -0
- package/dist/ir/thisarg-inference.test.js +94 -0
- package/dist/ir/thisarg-inference.test.js.map +1 -0
- package/dist/ir/type-converter.d.ts +5 -2
- package/dist/ir/type-converter.d.ts.map +1 -1
- package/dist/ir/type-converter.js +5 -2
- package/dist/ir/type-converter.js.map +1 -1
- package/dist/ir/type-system/core.d.ts +29 -0
- package/dist/ir/type-system/core.d.ts.map +1 -0
- package/dist/ir/type-system/core.js +456 -0
- package/dist/ir/type-system/core.js.map +1 -0
- package/dist/ir/type-system/index.d.ts +21 -0
- package/dist/ir/type-system/index.d.ts.map +1 -0
- package/dist/ir/type-system/index.js +43 -0
- package/dist/ir/type-system/index.js.map +1 -0
- package/dist/ir/type-system/internal/handle-types.d.ts +98 -0
- package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -0
- package/dist/ir/type-system/internal/handle-types.js +13 -0
- package/dist/ir/type-system/internal/handle-types.js.map +1 -0
- package/dist/ir/type-system/internal/nominal-env.d.ts +66 -0
- package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -0
- package/dist/ir/type-system/internal/nominal-env.js +301 -0
- package/dist/ir/type-system/internal/nominal-env.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/arrays.d.ts +11 -0
- package/dist/ir/type-system/internal/type-converter/arrays.d.ts.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/arrays.js +2 -2
- package/dist/ir/type-system/internal/type-converter/arrays.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/converter.d.ts +17 -0
- package/dist/ir/type-system/internal/type-converter/converter.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/converter.js +16 -0
- package/dist/ir/type-system/internal/type-converter/converter.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/functions.d.ts +14 -0
- package/dist/ir/type-system/internal/type-converter/functions.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/functions.js +66 -0
- package/dist/ir/type-system/internal/type-converter/functions.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/index.d.ts +11 -0
- package/dist/ir/type-system/internal/type-converter/index.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/index.js +11 -0
- package/dist/ir/type-system/internal/type-converter/index.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/inference.d.ts +37 -0
- package/dist/ir/type-system/internal/type-converter/inference.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/inference.js +32 -0
- package/dist/ir/type-system/internal/type-converter/inference.js.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/literals.d.ts +1 -1
- package/dist/ir/type-system/internal/type-converter/literals.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/literals.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/objects.d.ts +20 -0
- package/dist/ir/type-system/internal/type-converter/objects.d.ts.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/objects.js +56 -6
- package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/orchestrator.d.ts +3 -2
- package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/orchestrator.js +63 -21
- package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/patterns.d.ts +12 -0
- package/dist/ir/type-system/internal/type-converter/patterns.d.ts.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/patterns.js +22 -6
- package/dist/ir/type-system/internal/type-converter/patterns.js.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.d.ts +1 -1
- package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/references.d.ts +3 -2
- package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/references.js +551 -0
- package/dist/ir/type-system/internal/type-converter/references.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts +15 -0
- package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/unions-intersections.js +22 -0
- package/dist/ir/type-system/internal/type-converter/unions-intersections.js.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.d.ts +23 -36
- package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter/utility-types.js +879 -0
- package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.test.js +398 -120
- package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -0
- package/dist/ir/type-system/internal/type-converter.d.ts +9 -0
- package/dist/ir/type-system/internal/type-converter.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-converter.js +9 -0
- package/dist/ir/type-system/internal/type-converter.js.map +1 -0
- package/dist/ir/type-system/internal/type-registry.d.ts +107 -0
- package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-registry.js +534 -0
- package/dist/ir/type-system/internal/type-registry.js.map +1 -0
- package/dist/ir/type-system/internal/universe/alias-table.d.ts +92 -0
- package/dist/ir/type-system/internal/universe/alias-table.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/alias-table.js +222 -0
- package/dist/ir/type-system/internal/universe/alias-table.js.map +1 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +44 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.js +1176 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -0
- package/dist/ir/type-system/internal/universe/index.d.ts +26 -0
- package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/index.js +30 -0
- package/dist/ir/type-system/internal/universe/index.js.map +1 -0
- package/dist/ir/type-system/internal/universe/resolution.d.ts +115 -0
- package/dist/ir/type-system/internal/universe/resolution.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/resolution.js +181 -0
- package/dist/ir/type-system/internal/universe/resolution.js.map +1 -0
- package/dist/ir/type-system/internal/universe/source-catalog.d.ts +62 -0
- package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/source-catalog.js +91 -0
- package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -0
- package/dist/ir/type-system/internal/universe/types.d.ts +436 -0
- package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/types.js +69 -0
- package/dist/ir/type-system/internal/universe/types.js.map +1 -0
- package/dist/ir/type-system/internal/universe/unified-universe.d.ts +70 -0
- package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/unified-universe.js +319 -0
- package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -0
- package/dist/ir/type-system/type-system.d.ts +617 -0
- package/dist/ir/type-system/type-system.d.ts.map +1 -0
- package/dist/ir/type-system/type-system.js +2420 -0
- package/dist/ir/type-system/type-system.js.map +1 -0
- package/dist/ir/type-system/types.d.ts +176 -0
- package/dist/ir/type-system/types.d.ts.map +1 -0
- package/dist/ir/type-system/types.js +80 -0
- package/dist/ir/type-system/types.js.map +1 -0
- package/dist/ir/type-universe/assembly-catalog.d.ts +44 -0
- package/dist/ir/type-universe/assembly-catalog.d.ts.map +1 -0
- package/dist/ir/type-universe/assembly-catalog.js +532 -0
- package/dist/ir/type-universe/assembly-catalog.js.map +1 -0
- package/dist/ir/type-universe/assembly-catalog.test.d.ts +7 -0
- package/dist/ir/type-universe/assembly-catalog.test.d.ts.map +1 -0
- package/dist/ir/type-universe/assembly-catalog.test.js +105 -0
- package/dist/ir/type-universe/assembly-catalog.test.js.map +1 -0
- package/dist/ir/type-universe/index.d.ts +19 -0
- package/dist/ir/type-universe/index.d.ts.map +1 -0
- package/dist/ir/type-universe/index.js +21 -0
- package/dist/ir/type-universe/index.js.map +1 -0
- package/dist/ir/type-universe/types.d.ts +436 -0
- package/dist/ir/type-universe/types.d.ts.map +1 -0
- package/dist/ir/type-universe/types.js +69 -0
- package/dist/ir/type-universe/types.js.map +1 -0
- package/dist/ir/type-universe/unified-catalog.d.ts +70 -0
- package/dist/ir/type-universe/unified-catalog.d.ts.map +1 -0
- package/dist/ir/type-universe/unified-catalog.js +319 -0
- package/dist/ir/type-universe/unified-catalog.js.map +1 -0
- package/dist/ir/type-universe/unified-catalog.test.d.ts +7 -0
- package/dist/ir/type-universe/unified-catalog.test.d.ts.map +1 -0
- package/dist/ir/type-universe/unified-catalog.test.js +135 -0
- package/dist/ir/type-universe/unified-catalog.test.js.map +1 -0
- package/dist/ir/types/expressions.d.ts +74 -2
- package/dist/ir/types/expressions.d.ts.map +1 -1
- package/dist/ir/types/helpers.d.ts +22 -2
- package/dist/ir/types/helpers.d.ts.map +1 -1
- package/dist/ir/types/index.d.ts +4 -2
- package/dist/ir/types/index.d.ts.map +1 -1
- package/dist/ir/types/index.js +1 -0
- package/dist/ir/types/index.js.map +1 -1
- package/dist/ir/types/ir-substitution.d.ts +144 -0
- package/dist/ir/types/ir-substitution.d.ts.map +1 -0
- package/dist/ir/types/ir-substitution.js +569 -0
- package/dist/ir/types/ir-substitution.js.map +1 -0
- package/dist/ir/types/ir-types.d.ts +9 -3
- package/dist/ir/types/ir-types.d.ts.map +1 -1
- package/dist/ir/types/numeric-helpers.d.ts +2 -1
- package/dist/ir/types/numeric-helpers.d.ts.map +1 -1
- package/dist/ir/types/numeric-helpers.js +9 -3
- package/dist/ir/types/numeric-helpers.js.map +1 -1
- package/dist/ir/types/statements.d.ts +13 -1
- package/dist/ir/types/statements.d.ts.map +1 -1
- package/dist/ir/types.d.ts +1 -1
- package/dist/ir/types.d.ts.map +1 -1
- package/dist/ir/types.js.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-pass.js +165 -7
- package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
- package/dist/ir/validation/arrow-return-finalization-pass.d.ts +28 -0
- package/dist/ir/validation/arrow-return-finalization-pass.d.ts.map +1 -0
- package/dist/ir/validation/arrow-return-finalization-pass.js +416 -0
- package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -0
- package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
- package/dist/ir/validation/attribute-collection-pass.js +40 -6
- package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
- package/dist/ir/validation/attribute-collection-pass.test.js +43 -36
- package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
- package/dist/ir/validation/index.d.ts +3 -0
- package/dist/ir/validation/index.d.ts.map +1 -1
- package/dist/ir/validation/index.js +3 -0
- package/dist/ir/validation/index.js.map +1 -1
- package/dist/ir/validation/numeric-coercion-pass.d.ts +22 -16
- package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
- package/dist/ir/validation/numeric-coercion-pass.js +159 -51
- package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
- package/dist/ir/validation/numeric-invariants.test.js +72 -108
- package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
- package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
- package/dist/ir/validation/numeric-proof-pass.js +71 -23
- package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
- package/dist/ir/validation/rest-type-synthesis-pass.d.ts +24 -0
- package/dist/ir/validation/rest-type-synthesis-pass.d.ts.map +1 -0
- package/dist/ir/validation/rest-type-synthesis-pass.js +417 -0
- package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -0
- package/dist/ir/validation/soundness-gate.d.ts +11 -1
- package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
- package/dist/ir/validation/soundness-gate.js +42 -10
- package/dist/ir/validation/soundness-gate.js.map +1 -1
- package/dist/ir/validation/soundness-gate.test.js +19 -2
- package/dist/ir/validation/soundness-gate.test.js.map +1 -1
- package/dist/ir/validation/virtual-marking-pass.d.ts +16 -0
- package/dist/ir/validation/virtual-marking-pass.d.ts.map +1 -0
- package/dist/ir/validation/virtual-marking-pass.js +77 -0
- package/dist/ir/validation/virtual-marking-pass.js.map +1 -0
- package/dist/ir/validation/yield-lowering-pass.test.js +2 -2
- package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
- package/dist/program/bindings.d.ts +28 -0
- package/dist/program/bindings.d.ts.map +1 -1
- package/dist/program/bindings.js +204 -2
- package/dist/program/bindings.js.map +1 -1
- package/dist/program/bindings.test.js +30 -0
- package/dist/program/bindings.test.js.map +1 -1
- package/dist/program/creation.d.ts.map +1 -1
- package/dist/program/creation.js +251 -4
- package/dist/program/creation.js.map +1 -1
- package/dist/program/dependency-graph.d.ts.map +1 -1
- package/dist/program/dependency-graph.js +25 -25
- package/dist/program/dependency-graph.js.map +1 -1
- package/dist/program/diagnostics.d.ts.map +1 -1
- package/dist/program/diagnostics.js +6 -0
- package/dist/program/diagnostics.js.map +1 -1
- package/dist/program/index.d.ts +1 -1
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/types.d.ts +8 -8
- package/dist/program/types.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.d.ts +1 -0
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.js +90 -34
- package/dist/resolver/clr-bindings-resolver.js.map +1 -1
- package/dist/resolver/import-resolution.d.ts +16 -1
- package/dist/resolver/import-resolution.d.ts.map +1 -1
- package/dist/resolver/import-resolution.js +29 -12
- package/dist/resolver/import-resolution.js.map +1 -1
- package/dist/resolver/naming.d.ts +1 -1
- package/dist/resolver/naming.d.ts.map +1 -1
- package/dist/resolver/naming.js +13 -2
- package/dist/resolver/naming.js.map +1 -1
- package/dist/resolver.test.js +4 -0
- package/dist/resolver.test.js.map +1 -1
- package/dist/symbol-table/builder.d.ts +3 -1
- package/dist/symbol-table/builder.d.ts.map +1 -1
- package/dist/symbol-table/builder.js +9 -8
- package/dist/symbol-table/builder.js.map +1 -1
- package/dist/symbol-table/types.d.ts +2 -2
- package/dist/symbol-table/types.d.ts.map +1 -1
- package/dist/types/diagnostic.d.ts +12 -2
- package/dist/types/diagnostic.d.ts.map +1 -1
- package/dist/types/diagnostic.js +5 -1
- package/dist/types/diagnostic.js.map +1 -1
- package/dist/validation/extension-methods.d.ts +17 -0
- package/dist/validation/extension-methods.d.ts.map +1 -0
- package/dist/validation/extension-methods.js +133 -0
- package/dist/validation/extension-methods.js.map +1 -0
- package/dist/validation/generics.d.ts.map +1 -1
- package/dist/validation/generics.js +1 -129
- package/dist/validation/generics.js.map +1 -1
- package/dist/validation/imports.js +1 -1
- package/dist/validation/imports.js.map +1 -1
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/orchestrator.d.ts.map +1 -1
- package/dist/validation/orchestrator.js +2 -0
- package/dist/validation/orchestrator.js.map +1 -1
- package/dist/validation/static-safety.d.ts +1 -0
- package/dist/validation/static-safety.d.ts.map +1 -1
- package/dist/validation/static-safety.js +366 -96
- package/dist/validation/static-safety.js.map +1 -1
- package/dist/validator.test.js +77 -1
- package/dist/validator.test.js.map +1 -1
- package/package.json +2 -2
- package/dist/ir/type-converter/arrays.d.ts +0 -10
- package/dist/ir/type-converter/arrays.d.ts.map +0 -1
- package/dist/ir/type-converter/arrays.js.map +0 -1
- package/dist/ir/type-converter/converter.d.ts +0 -6
- package/dist/ir/type-converter/converter.d.ts.map +0 -1
- package/dist/ir/type-converter/converter.js +0 -6
- package/dist/ir/type-converter/converter.js.map +0 -1
- package/dist/ir/type-converter/functions.d.ts +0 -10
- package/dist/ir/type-converter/functions.d.ts.map +0 -1
- package/dist/ir/type-converter/functions.js +0 -15
- package/dist/ir/type-converter/functions.js.map +0 -1
- package/dist/ir/type-converter/index.d.ts +0 -7
- package/dist/ir/type-converter/index.d.ts.map +0 -1
- package/dist/ir/type-converter/index.js +0 -7
- package/dist/ir/type-converter/index.js.map +0 -1
- package/dist/ir/type-converter/inference.d.ts +0 -32
- package/dist/ir/type-converter/inference.d.ts.map +0 -1
- package/dist/ir/type-converter/inference.js +0 -297
- package/dist/ir/type-converter/inference.js.map +0 -1
- package/dist/ir/type-converter/literals.d.ts.map +0 -1
- package/dist/ir/type-converter/literals.js.map +0 -1
- package/dist/ir/type-converter/objects.d.ts +0 -16
- package/dist/ir/type-converter/objects.d.ts.map +0 -1
- package/dist/ir/type-converter/objects.js.map +0 -1
- package/dist/ir/type-converter/orchestrator.d.ts.map +0 -1
- package/dist/ir/type-converter/orchestrator.js.map +0 -1
- package/dist/ir/type-converter/patterns.d.ts +0 -10
- package/dist/ir/type-converter/patterns.d.ts.map +0 -1
- package/dist/ir/type-converter/patterns.js.map +0 -1
- package/dist/ir/type-converter/primitives.d.ts.map +0 -1
- package/dist/ir/type-converter/primitives.js.map +0 -1
- package/dist/ir/type-converter/references.d.ts.map +0 -1
- package/dist/ir/type-converter/references.js +0 -371
- package/dist/ir/type-converter/references.js.map +0 -1
- package/dist/ir/type-converter/unions-intersections.d.ts +0 -14
- package/dist/ir/type-converter/unions-intersections.d.ts.map +0 -1
- package/dist/ir/type-converter/unions-intersections.js +0 -22
- package/dist/ir/type-converter/unions-intersections.js.map +0 -1
- package/dist/ir/type-converter/utility-types.d.ts.map +0 -1
- package/dist/ir/type-converter/utility-types.js +0 -528
- package/dist/ir/type-converter/utility-types.js.map +0 -1
- package/dist/ir/type-converter/utility-types.test.d.ts.map +0 -1
- package/dist/ir/type-converter/utility-types.test.js.map +0 -1
- /package/dist/ir/{type-converter → type-system/internal/type-converter}/literals.js +0 -0
- /package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.js +0 -0
- /package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.test.d.ts +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Helper functions for expression conversion
|
|
3
|
+
*
|
|
4
|
+
* ALICE'S SPEC: All type resolution goes through TypeSystem.
|
|
5
|
+
* NO getHandleRegistry() calls allowed here.
|
|
3
6
|
*/
|
|
4
7
|
import * as ts from "typescript";
|
|
5
|
-
import { TSONIC_TO_NUMERIC_KIND } from "../../types.js";
|
|
6
|
-
import { convertType, convertTsTypeToIr } from "../../type-converter.js";
|
|
7
8
|
import { getSourceLocation } from "../../../program/diagnostics.js";
|
|
8
9
|
/**
|
|
9
10
|
* Get source span for a TypeScript node.
|
|
@@ -22,210 +23,186 @@ export const getSourceSpan = (node) => {
|
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
-
* Returns true for types like `int`, `byte`, `float`, etc.
|
|
26
|
+
* Derive identifier type from declaration TypeNode (DETERMINISTIC).
|
|
27
27
|
*
|
|
28
|
-
* This
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* when we haven't proven it does.
|
|
33
|
-
*/
|
|
34
|
-
const isNumericAliasType = (tsType) => {
|
|
35
|
-
// Check if it's a type alias that resolves to a numeric kind
|
|
36
|
-
const symbol = tsType.aliasSymbol ?? tsType.getSymbol();
|
|
37
|
-
if (symbol) {
|
|
38
|
-
const name = symbol.getName();
|
|
39
|
-
if (TSONIC_TO_NUMERIC_KIND.has(name)) {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return false;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Attempt to recover numeric intent from a property declaration's type annotation.
|
|
28
|
+
* This function looks up the identifier's declaration and extracts the type
|
|
29
|
+
* from the TypeNode, NOT from TypeScript's computed type. This ensures:
|
|
30
|
+
* - CLR type aliases like `int`, `byte`, `long` are preserved
|
|
31
|
+
* - Types are deterministic and don't depend on TypeScript inference
|
|
47
32
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
33
|
+
* For variables without explicit type annotation (e.g., `const x = createArray()`),
|
|
34
|
+
* derives the type from the initializer's declared return type.
|
|
50
35
|
*
|
|
51
|
-
*
|
|
52
|
-
* -
|
|
53
|
-
* -
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
*
|
|
36
|
+
* Returns undefined if:
|
|
37
|
+
* - No declaration found
|
|
38
|
+
* - Declaration has no TypeNode and no derivable initializer
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* Derive the return type of a call expression from its declaration.
|
|
57
42
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
43
|
+
* ALICE'S SPEC: Uses TypeSystem.resolveCall() exclusively.
|
|
44
|
+
* This is a simplified version for use in deriveIdentifierType to avoid
|
|
45
|
+
* circular dependencies with calls.ts.
|
|
60
46
|
*/
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// Only if name is in numeric vocabulary
|
|
75
|
-
if (TSONIC_TO_NUMERIC_KIND.has(name)) {
|
|
76
|
-
recoveredNames.add(name);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// CONSERVATIVE: Only return if exactly one numeric annotation was found
|
|
82
|
-
// If conflicting (e.g., one says `int`, another says `long`), return undefined
|
|
83
|
-
if (recoveredNames.size === 1) {
|
|
84
|
-
const names = [...recoveredNames];
|
|
85
|
-
const name = names[0];
|
|
86
|
-
if (name !== undefined) {
|
|
87
|
-
return { kind: "referenceType", name };
|
|
88
|
-
}
|
|
47
|
+
const deriveCallReturnType = (node, ctx) => {
|
|
48
|
+
const typeSystem = ctx.typeSystem;
|
|
49
|
+
const sigId = ctx.binding.resolveCallSignature(node);
|
|
50
|
+
if (!sigId)
|
|
51
|
+
return undefined;
|
|
52
|
+
// Use TypeSystem.resolveCall() - returns fully resolved return type
|
|
53
|
+
const resolved = typeSystem.resolveCall({
|
|
54
|
+
sigId,
|
|
55
|
+
argumentCount: node.arguments.length,
|
|
56
|
+
});
|
|
57
|
+
// If TypeSystem returns unknownType, treat it as unresolvable
|
|
58
|
+
if (resolved.returnType.kind === "unknownType") {
|
|
59
|
+
return undefined;
|
|
89
60
|
}
|
|
90
|
-
return
|
|
61
|
+
return resolved.returnType;
|
|
91
62
|
};
|
|
92
63
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* For calls like arr.indexOf("x"), if the declaration says `indexOf(...): int`,
|
|
96
|
-
* we recover "int" even if checker normalizes to "number".
|
|
64
|
+
* Derive the constructed type from a new expression.
|
|
97
65
|
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* returns undefined to avoid incorrect recovery.
|
|
101
|
-
*
|
|
102
|
-
* NOTE: Recovery is intentionally VOCABULARY-BASED (TSONIC_TO_NUMERIC_KIND),
|
|
103
|
-
* not package-path based. Do not add special casing for @tsonic/core paths.
|
|
66
|
+
* Phase 15 (Alice's spec): Uses constructor-signature-based logic with resolveCall.
|
|
67
|
+
* This enables deterministic generic inference from argument types.
|
|
104
68
|
*/
|
|
105
|
-
const
|
|
106
|
-
const
|
|
107
|
-
|
|
69
|
+
const deriveNewExpressionType = (node, ctx) => {
|
|
70
|
+
const typeSystem = ctx.typeSystem;
|
|
71
|
+
// Get constructor signature ID
|
|
72
|
+
const sigId = ctx.binding.resolveConstructorSignature(node);
|
|
73
|
+
if (!sigId)
|
|
108
74
|
return undefined;
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
ts.isMethodDeclaration(decl) ||
|
|
113
|
-
ts.isFunctionDeclaration(decl) ||
|
|
114
|
-
ts.isCallSignatureDeclaration(decl)
|
|
115
|
-
? decl.type
|
|
75
|
+
// Extract explicit type arguments
|
|
76
|
+
const explicitTypeArgs = node.typeArguments
|
|
77
|
+
? node.typeArguments.map((ta) => typeSystem.typeFromSyntax(ctx.binding.captureTypeSyntax(ta)))
|
|
116
78
|
: undefined;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
ts.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
79
|
+
// Derive argTypes conservatively from syntax (similar to deriveTypeFromInitializer)
|
|
80
|
+
const argTypes = [];
|
|
81
|
+
const args = node.arguments ?? [];
|
|
82
|
+
for (const arg of args) {
|
|
83
|
+
if (ts.isSpreadElement(arg)) {
|
|
84
|
+
argTypes.push(undefined);
|
|
85
|
+
}
|
|
86
|
+
else if (ts.isNumericLiteral(arg)) {
|
|
87
|
+
argTypes.push({ kind: "primitiveType", name: "number" });
|
|
88
|
+
}
|
|
89
|
+
else if (ts.isStringLiteral(arg)) {
|
|
90
|
+
argTypes.push({ kind: "primitiveType", name: "string" });
|
|
91
|
+
}
|
|
92
|
+
else if (arg.kind === ts.SyntaxKind.TrueKeyword ||
|
|
93
|
+
arg.kind === ts.SyntaxKind.FalseKeyword) {
|
|
94
|
+
argTypes.push({ kind: "primitiveType", name: "boolean" });
|
|
95
|
+
}
|
|
96
|
+
else if (ts.isIdentifier(arg)) {
|
|
97
|
+
argTypes.push(deriveIdentifierType(arg, ctx));
|
|
98
|
+
}
|
|
99
|
+
else if (ts.isNewExpression(arg)) {
|
|
100
|
+
// Recursive call for nested new expressions
|
|
101
|
+
argTypes.push(deriveNewExpressionType(arg, ctx));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
argTypes.push(undefined);
|
|
125
105
|
}
|
|
126
106
|
}
|
|
127
|
-
|
|
107
|
+
// Resolve the constructor call with argTypes for inference
|
|
108
|
+
const resolved = typeSystem.resolveCall({
|
|
109
|
+
sigId,
|
|
110
|
+
argumentCount: args.length,
|
|
111
|
+
explicitTypeArgs,
|
|
112
|
+
argTypes,
|
|
113
|
+
});
|
|
114
|
+
// Return the resolved returnType (the constructed type)
|
|
115
|
+
if (resolved.returnType.kind === "unknownType") {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
return resolved.returnType;
|
|
128
119
|
};
|
|
129
120
|
/**
|
|
130
|
-
*
|
|
131
|
-
* Prefers contextual type (from assignment target, return position, etc.)
|
|
132
|
-
* over literal type to handle cases like empty arrays `[]` correctly.
|
|
121
|
+
* Derive type from an initializer expression.
|
|
133
122
|
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* The `numericNarrowing` IR node is the ONLY source of numeric intent.
|
|
123
|
+
* DETERMINISTIC: Only uses TypeNodes from declarations, not TS type inference.
|
|
124
|
+
* Returns undefined if type cannot be determined from declarations alone.
|
|
137
125
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const propSymbol = checker.getPropertyOfType(objType, propName);
|
|
175
|
-
if (propSymbol) {
|
|
176
|
-
const recovered = tryRecoverNumericReferenceFromPropertyDecl(propSymbol);
|
|
177
|
-
if (recovered) {
|
|
178
|
-
return recovered; // Return referenceType("int") instead of primitiveType("number")
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// For call expressions like arr.indexOf("x"), check the signature return type
|
|
183
|
-
if (ts.isCallExpression(node)) {
|
|
184
|
-
const signature = checker.getResolvedSignature(node);
|
|
185
|
-
if (signature) {
|
|
186
|
-
const recovered = tryRecoverNumericReferenceFromSignatureReturnDecl(signature);
|
|
187
|
-
if (recovered) {
|
|
188
|
-
return recovered;
|
|
189
|
-
}
|
|
126
|
+
const deriveTypeFromInitializer = (initializer, ctx) => {
|
|
127
|
+
// Call expression: const arr = createArray()
|
|
128
|
+
if (ts.isCallExpression(initializer)) {
|
|
129
|
+
return deriveCallReturnType(initializer, ctx);
|
|
130
|
+
}
|
|
131
|
+
// New expression: const list = new List<int>()
|
|
132
|
+
if (ts.isNewExpression(initializer)) {
|
|
133
|
+
return deriveNewExpressionType(initializer, ctx);
|
|
134
|
+
}
|
|
135
|
+
// Identifier: const y = x (derive type from x's declaration)
|
|
136
|
+
if (ts.isIdentifier(initializer)) {
|
|
137
|
+
// Recursive call - will look up the identifier's declaration
|
|
138
|
+
// Note: This uses the main function, which is defined below
|
|
139
|
+
// TypeScript hoisting makes this work
|
|
140
|
+
return deriveIdentifierType(initializer, ctx);
|
|
141
|
+
}
|
|
142
|
+
// Literals - derive from the literal itself
|
|
143
|
+
if (ts.isNumericLiteral(initializer)) {
|
|
144
|
+
return { kind: "primitiveType", name: "number" };
|
|
145
|
+
}
|
|
146
|
+
if (ts.isStringLiteral(initializer)) {
|
|
147
|
+
return { kind: "primitiveType", name: "string" };
|
|
148
|
+
}
|
|
149
|
+
if (initializer.kind === ts.SyntaxKind.TrueKeyword ||
|
|
150
|
+
initializer.kind === ts.SyntaxKind.FalseKeyword) {
|
|
151
|
+
return { kind: "primitiveType", name: "boolean" };
|
|
152
|
+
}
|
|
153
|
+
// Array literal - return Array type (element type from first element if possible)
|
|
154
|
+
if (ts.isArrayLiteralExpression(initializer)) {
|
|
155
|
+
// For array literals, we can try to derive element type from first element
|
|
156
|
+
if (initializer.elements.length > 0) {
|
|
157
|
+
const firstElem = initializer.elements[0];
|
|
158
|
+
if (firstElem && !ts.isSpreadElement(firstElem)) {
|
|
159
|
+
const elementType = deriveTypeFromInitializer(firstElem, ctx);
|
|
160
|
+
if (elementType) {
|
|
161
|
+
return { kind: "arrayType", elementType };
|
|
190
162
|
}
|
|
191
163
|
}
|
|
192
164
|
}
|
|
193
|
-
|
|
165
|
+
// Empty array or couldn't derive element type
|
|
166
|
+
return undefined;
|
|
194
167
|
}
|
|
195
|
-
|
|
196
|
-
|
|
168
|
+
// Property access: const len = arr.length (need to trace through)
|
|
169
|
+
// Member access typing is complex - defer to undefined for now
|
|
170
|
+
// The proof pass will handle this
|
|
171
|
+
return undefined;
|
|
172
|
+
};
|
|
173
|
+
export const deriveIdentifierType = (node, ctx) => {
|
|
174
|
+
const typeSystem = ctx.typeSystem;
|
|
175
|
+
const declId = ctx.binding.resolveIdentifier(node);
|
|
176
|
+
if (!declId)
|
|
177
|
+
return undefined;
|
|
178
|
+
// ALICE'S SPEC: Use TypeSystem.typeOfDecl() exclusively
|
|
179
|
+
const declType = typeSystem.typeOfDecl(declId);
|
|
180
|
+
// TypeSystem returns unknownType if it can't resolve - treat as unresolvable
|
|
181
|
+
if (declType.kind === "unknownType") {
|
|
197
182
|
return undefined;
|
|
198
183
|
}
|
|
184
|
+
return declType;
|
|
199
185
|
};
|
|
200
186
|
/**
|
|
201
|
-
* Extract type arguments from a call or new expression
|
|
202
|
-
*
|
|
187
|
+
* Extract explicit type arguments from a call or new expression.
|
|
188
|
+
*
|
|
189
|
+
* DETERMINISTIC TYPING: Only returns type arguments that are explicitly
|
|
190
|
+
* specified in the source code. Does NOT use TypeScript's type inference
|
|
191
|
+
* to infer type arguments. For inferred type arguments, use expectedType
|
|
192
|
+
* threading in the caller (Step 6 of deterministic typing).
|
|
203
193
|
*/
|
|
204
|
-
export const extractTypeArguments = (node,
|
|
194
|
+
export const extractTypeArguments = (node, ctx) => {
|
|
205
195
|
try {
|
|
206
|
-
//
|
|
196
|
+
// Only return explicitly specified type arguments
|
|
197
|
+
// DETERMINISTIC: No typeToTypeNode for inferred type args
|
|
207
198
|
if (node.typeArguments && node.typeArguments.length > 0) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
const signature = checker.getResolvedSignature(node);
|
|
212
|
-
if (!signature) {
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
const typeParameters = signature.typeParameters;
|
|
216
|
-
if (!typeParameters || typeParameters.length === 0) {
|
|
217
|
-
return undefined;
|
|
199
|
+
// PHASE 4 (Alice's spec): Use captureTypeSyntax + typeFromSyntax
|
|
200
|
+
const typeSystem = ctx.typeSystem;
|
|
201
|
+
return node.typeArguments.map((typeArg) => typeSystem.typeFromSyntax(ctx.binding.captureTypeSyntax(typeArg)));
|
|
218
202
|
}
|
|
219
|
-
//
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
// Try to resolve the instantiated type for this parameter
|
|
223
|
-
const typeNode = checker.typeToTypeNode(typeParam, node, ts.NodeBuilderFlags.None);
|
|
224
|
-
if (typeNode) {
|
|
225
|
-
typeArgs.push(convertType(typeNode, checker));
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return typeArgs.length > 0 ? typeArgs : undefined;
|
|
203
|
+
// No explicit type arguments - return undefined
|
|
204
|
+
// The caller should use expectedType threading if type args are needed
|
|
205
|
+
return undefined;
|
|
229
206
|
}
|
|
230
207
|
catch {
|
|
231
208
|
return undefined;
|
|
@@ -234,36 +211,27 @@ export const extractTypeArguments = (node, checker) => {
|
|
|
234
211
|
/**
|
|
235
212
|
* Check if a call/new expression requires specialization
|
|
236
213
|
* Returns true for conditional types, infer, variadic generics, this typing
|
|
214
|
+
*
|
|
215
|
+
* DETERMINISTIC: Uses Binding API to resolve signatures and extract declaration info.
|
|
237
216
|
*/
|
|
238
|
-
export const checkIfRequiresSpecialization = (node,
|
|
217
|
+
export const checkIfRequiresSpecialization = (node, ctx) => {
|
|
239
218
|
try {
|
|
240
|
-
|
|
241
|
-
|
|
219
|
+
// Handle both CallExpression and NewExpression
|
|
220
|
+
const sigId = ts.isCallExpression(node)
|
|
221
|
+
? ctx.binding.resolveCallSignature(node)
|
|
222
|
+
: ctx.binding.resolveConstructorSignature(node);
|
|
223
|
+
if (!sigId)
|
|
242
224
|
return false;
|
|
243
|
-
|
|
244
|
-
const
|
|
225
|
+
// ALICE'S SPEC: Use TypeSystem for all type checks
|
|
226
|
+
const typeSystem = ctx.typeSystem;
|
|
227
|
+
// ALICE'S SPEC (Phase 5): Use semantic methods instead of getSignatureInfo
|
|
245
228
|
// Check for conditional return types
|
|
246
|
-
if (
|
|
247
|
-
|
|
248
|
-
ts.isFunctionTypeNode(decl)) {
|
|
249
|
-
if (decl.type && ts.isConditionalTypeNode(decl.type)) {
|
|
250
|
-
return true;
|
|
251
|
-
}
|
|
229
|
+
if (typeSystem.signatureHasConditionalReturn(sigId)) {
|
|
230
|
+
return true;
|
|
252
231
|
}
|
|
253
|
-
// Check for variadic type parameters (
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
for (const typeParam of typeParameters) {
|
|
257
|
-
const constraint = typeParam.getConstraint();
|
|
258
|
-
if (constraint) {
|
|
259
|
-
const constraintStr = checker.typeToString(constraint);
|
|
260
|
-
// Check for unknown[] which indicates variadic
|
|
261
|
-
if (constraintStr.includes("unknown[]") ||
|
|
262
|
-
constraintStr.includes("any[]")) {
|
|
263
|
-
return true;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
232
|
+
// Check for variadic type parameters (e.g., T extends unknown[])
|
|
233
|
+
if (typeSystem.signatureHasVariadicTypeParams(sigId)) {
|
|
234
|
+
return true;
|
|
267
235
|
}
|
|
268
236
|
return false;
|
|
269
237
|
}
|
|
@@ -328,56 +296,91 @@ export const isAssignmentOperator = (token) => {
|
|
|
328
296
|
token.kind <= ts.SyntaxKind.LastAssignment);
|
|
329
297
|
};
|
|
330
298
|
/**
|
|
331
|
-
* Get the contextual type for an expression
|
|
332
|
-
*
|
|
333
|
-
*
|
|
299
|
+
* Get the contextual type for an expression from explicit TypeNodes.
|
|
300
|
+
*
|
|
301
|
+
* DETERMINISTIC TYPING: Only extracts types from explicit TypeNodes in the
|
|
302
|
+
* source code. Does NOT use TypeScript's getContextualType (banned API).
|
|
303
|
+
* Returns undefined if no explicit type annotation is found.
|
|
334
304
|
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
305
|
+
* For complete expectedType threading (covering all contexts), see Step 6
|
|
306
|
+
* of deterministic typing implementation.
|
|
337
307
|
*/
|
|
338
|
-
export const getContextualType = (node,
|
|
308
|
+
export const getContextualType = (node, ctx) => {
|
|
339
309
|
try {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
310
|
+
// PHASE 4 (Alice's spec): Use captureTypeSyntax + typeFromSyntax
|
|
311
|
+
const typeSystem = ctx.typeSystem;
|
|
312
|
+
const parent = node.parent;
|
|
313
|
+
// Variable declaration: const x: Foo = { ... }
|
|
314
|
+
if (ts.isVariableDeclaration(parent) && parent.type) {
|
|
315
|
+
return typeSystem.typeFromSyntax(ctx.binding.captureTypeSyntax(parent.type));
|
|
343
316
|
}
|
|
344
|
-
//
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
317
|
+
// Return statement: function f(): Foo { return { ... } }
|
|
318
|
+
if (ts.isReturnStatement(parent)) {
|
|
319
|
+
// Walk up to find enclosing function
|
|
320
|
+
let current = parent;
|
|
321
|
+
while (current && !ts.isFunctionLike(current)) {
|
|
322
|
+
current = current.parent;
|
|
323
|
+
}
|
|
324
|
+
if (current && ts.isFunctionLike(current) && current.type) {
|
|
325
|
+
return typeSystem.typeFromSyntax(ctx.binding.captureTypeSyntax(current.type));
|
|
326
|
+
}
|
|
348
327
|
}
|
|
349
|
-
//
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
328
|
+
// Property assignment in object literal: { prop: { ... } }
|
|
329
|
+
if (ts.isPropertyAssignment(parent)) {
|
|
330
|
+
const propName = ts.isIdentifier(parent.name)
|
|
331
|
+
? parent.name.text
|
|
332
|
+
: ts.isStringLiteral(parent.name)
|
|
333
|
+
? parent.name.text
|
|
334
|
+
: undefined;
|
|
335
|
+
if (propName && ts.isObjectLiteralExpression(parent.parent)) {
|
|
336
|
+
const parentType = getContextualType(parent.parent, ctx);
|
|
337
|
+
if (parentType?.kind === "objectType") {
|
|
338
|
+
const member = parentType.members.find((m) => m.kind === "propertySignature" && m.name === propName);
|
|
339
|
+
if (member?.kind === "propertySignature") {
|
|
340
|
+
return member.type;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// For referenceType, we would need TypeRegistry to find member type
|
|
344
|
+
// This will be handled in Step 6 with full expectedType threading
|
|
345
|
+
}
|
|
354
346
|
}
|
|
355
|
-
//
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
(ts.isInterfaceDeclaration(firstDecl) ||
|
|
361
|
-
ts.isClassDeclaration(firstDecl) ||
|
|
362
|
-
ts.isTypeAliasDeclaration(firstDecl))) {
|
|
363
|
-
// Convert the full contextual type to IR, capturing type arguments
|
|
364
|
-
return convertTsTypeToIr(contextualType, checker);
|
|
347
|
+
// Array element: const arr: Foo[] = [{ ... }]
|
|
348
|
+
if (ts.isArrayLiteralExpression(parent)) {
|
|
349
|
+
const arrayType = getContextualType(parent, ctx);
|
|
350
|
+
if (arrayType?.kind === "arrayType") {
|
|
351
|
+
return arrayType.elementType;
|
|
365
352
|
}
|
|
366
353
|
}
|
|
354
|
+
// Call argument: f({ ... }) where f(x: Foo)
|
|
355
|
+
// Use TypeSystem.resolveCall() to get parameter types
|
|
356
|
+
if (ts.isCallExpression(parent) || ts.isNewExpression(parent)) {
|
|
357
|
+
const argIndex = parent.arguments
|
|
358
|
+
? parent.arguments.indexOf(node)
|
|
359
|
+
: -1;
|
|
360
|
+
if (argIndex >= 0) {
|
|
361
|
+
// Handle both CallExpression and NewExpression
|
|
362
|
+
const sigId = ts.isCallExpression(parent)
|
|
363
|
+
? ctx.binding.resolveCallSignature(parent)
|
|
364
|
+
: ctx.binding.resolveConstructorSignature(parent);
|
|
365
|
+
if (sigId) {
|
|
366
|
+
// ALICE'S SPEC: Use TypeSystem.resolveCall() for parameter types
|
|
367
|
+
const resolved = typeSystem.resolveCall({
|
|
368
|
+
sigId,
|
|
369
|
+
argumentCount: parent.arguments?.length ?? 0,
|
|
370
|
+
});
|
|
371
|
+
const paramType = resolved.parameterTypes[argIndex];
|
|
372
|
+
if (paramType && paramType.kind !== "unknownType") {
|
|
373
|
+
return paramType;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// DETERMINISTIC: No fallback to checker.getContextualType
|
|
379
|
+
// Return undefined if we can't find an explicit type annotation
|
|
367
380
|
return undefined;
|
|
368
381
|
}
|
|
369
382
|
catch {
|
|
370
383
|
return undefined;
|
|
371
384
|
}
|
|
372
385
|
};
|
|
373
|
-
/**
|
|
374
|
-
* @deprecated Use getContextualType instead - returns IrType with type arguments
|
|
375
|
-
*/
|
|
376
|
-
export const getContextualTypeName = (node, checker) => {
|
|
377
|
-
const irType = getContextualType(node, checker);
|
|
378
|
-
if (irType && irType.kind === "referenceType") {
|
|
379
|
-
return irType.name;
|
|
380
|
-
}
|
|
381
|
-
return undefined;
|
|
382
|
-
};
|
|
383
386
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Expression converters barrel exports
|
|
3
3
|
*/
|
|
4
|
-
export {
|
|
4
|
+
export { getSourceSpan, extractTypeArguments, checkIfRequiresSpecialization, convertBinaryOperator, isAssignmentOperator, deriveIdentifierType, } from "./helpers.js";
|
|
5
5
|
export { convertLiteral } from "./literals.js";
|
|
6
6
|
export { convertArrayLiteral, convertObjectLiteral } from "./collections.js";
|
|
7
7
|
export { convertMemberExpression } from "./access.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGzE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|