@tsonic/frontend 0.0.14 → 0.0.16
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 +3 -2
- package/dist/graph/extraction/orchestrator.js.map +1 -1
- package/dist/ir/binding/index.d.ts +155 -0
- package/dist/ir/binding/index.d.ts.map +1 -0
- package/dist/ir/binding/index.js +1035 -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/bindings-disambiguation.test.d.ts +11 -0
- package/dist/ir/bindings-disambiguation.test.d.ts.map +1 -0
- package/dist/ir/bindings-disambiguation.test.js +416 -0
- package/dist/ir/bindings-disambiguation.test.js.map +1 -0
- 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 +32 -15
- 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 +2 -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 +55 -112
- package/dist/ir/builder.test.js.map +1 -1
- 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 +25 -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 +389 -43
- 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 +674 -397
- 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 +158 -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 +183 -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/flow-narrowing.d.ts +27 -0
- package/dist/ir/converters/flow-narrowing.d.ts.map +1 -0
- package/dist/ir/converters/flow-narrowing.js +73 -0
- package/dist/ir/converters/flow-narrowing.js.map +1 -0
- 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 +36 -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 +139 -57
- 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 +87 -0
- package/dist/ir/program-context.d.ts.map +1 -0
- package/dist/ir/program-context.js +289 -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/{type-converter/patterns.js → syntax/binding-patterns.js} +34 -8
- 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-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 +105 -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-converter → type-system/internal/type-converter}/primitives.d.ts +4 -4
- package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -0
- package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.js +2 -2
- 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 +545 -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 +112 -0
- package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -0
- package/dist/ir/type-system/internal/type-registry.js +535 -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 +1192 -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 +64 -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 +96 -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 +2579 -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/types/expressions.d.ts +35 -7
- 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 +10 -4
- 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 +22 -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 +153 -8
- 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/char-validation-pass.d.ts +26 -0
- package/dist/ir/validation/char-validation-pass.d.ts.map +1 -0
- package/dist/ir/validation/char-validation-pass.js +495 -0
- package/dist/ir/validation/char-validation-pass.js.map +1 -0
- 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 +44 -0
- package/dist/program/bindings.d.ts.map +1 -1
- package/dist/program/bindings.js +248 -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 +158 -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 +33 -26
- package/dist/program/dependency-graph.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 +7 -8
- package/dist/program/types.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.d.ts +6 -0
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.js +185 -39
- package/dist/resolver/clr-bindings-resolver.js.map +1 -1
- package/dist/resolver/clr-bindings-resolver.test.d.ts +2 -0
- package/dist/resolver/clr-bindings-resolver.test.d.ts.map +1 -0
- package/dist/resolver/clr-bindings-resolver.test.js +161 -0
- package/dist/resolver/clr-bindings-resolver.test.js.map +1 -0
- 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/namespace.d.ts +2 -1
- package/dist/resolver/namespace.d.ts.map +1 -1
- package/dist/resolver/namespace.js +5 -2
- package/dist/resolver/namespace.js.map +1 -1
- package/dist/resolver/namespace.test.js +6 -6
- package/dist/resolver/naming-policy.d.ts +20 -0
- package/dist/resolver/naming-policy.d.ts.map +1 -0
- package/dist/resolver/naming-policy.js +40 -0
- package/dist/resolver/naming-policy.js.map +1 -0
- package/dist/resolver/naming.d.ts +2 -5
- package/dist/resolver/naming.d.ts.map +1 -1
- package/dist/resolver/naming.js +3 -20
- package/dist/resolver/naming.js.map +1 -1
- package/dist/resolver.d.ts +2 -0
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +1 -0
- package/dist/resolver.js.map +1 -1
- package/dist/resolver.test.js +8 -3
- 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/core-intrinsics.d.ts +18 -0
- package/dist/validation/core-intrinsics.d.ts.map +1 -0
- package/dist/validation/core-intrinsics.js +186 -0
- package/dist/validation/core-intrinsics.js.map +1 -0
- 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 +2 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +2 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/orchestrator.d.ts.map +1 -1
- package/dist/validation/orchestrator.js +4 -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 +123 -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.d.ts +0 -6
- package/dist/ir/type-converter.d.ts.map +0 -1
- package/dist/ir/type-converter.js +0 -6
- package/dist/ir/type-converter.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}/utility-types.test.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/calls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,29 @@
|
|
|
2
2
|
* Collection expression converters (arrays and objects)
|
|
3
3
|
*/
|
|
4
4
|
import * as ts from "typescript";
|
|
5
|
-
import { IrArrayExpression, IrObjectExpression } from "../../types.js";
|
|
5
|
+
import { IrArrayExpression, IrObjectExpression, IrType } from "../../types.js";
|
|
6
|
+
import type { ProgramContext } from "../../program-context.js";
|
|
6
7
|
/**
|
|
7
8
|
* Convert array literal expression
|
|
9
|
+
*
|
|
10
|
+
* DETERMINISTIC TYPING:
|
|
11
|
+
* - If expectedType is provided (from LHS annotation), use it
|
|
12
|
+
* - Otherwise, derive from element types using literal form analysis
|
|
13
|
+
* - Default to number[] (double[]) for ergonomics when type cannot be determined
|
|
14
|
+
*
|
|
15
|
+
* @param node - The TypeScript array literal expression
|
|
16
|
+
* @param ctx - ProgramContext for type system and binding access
|
|
17
|
+
* @param expectedType - Expected type from context (e.g., `const a: number[] = [1,2,3]`).
|
|
18
|
+
* Pass `undefined` explicitly when no contextual type exists.
|
|
8
19
|
*/
|
|
9
|
-
export declare const convertArrayLiteral: (node: ts.ArrayLiteralExpression,
|
|
20
|
+
export declare const convertArrayLiteral: (node: ts.ArrayLiteralExpression, ctx: ProgramContext, expectedType: IrType | undefined) => IrArrayExpression;
|
|
10
21
|
/**
|
|
11
22
|
* Convert object literal expression
|
|
12
23
|
*
|
|
13
24
|
* If no contextual nominal type exists and the literal is eligible for synthesis,
|
|
14
25
|
* a synthetic type is generated and used as the contextual type.
|
|
26
|
+
*
|
|
27
|
+
* Threads expectedType to property values when the expected type is an objectType.
|
|
15
28
|
*/
|
|
16
|
-
export declare const convertObjectLiteral: (node: ts.ObjectLiteralExpression,
|
|
29
|
+
export declare const convertObjectLiteral: (node: ts.ObjectLiteralExpression, ctx: ProgramContext, expectedType?: IrType) => IrObjectExpression;
|
|
17
30
|
//# sourceMappingURL=collections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/collections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/collections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAGlB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA2G/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,EAAE,CAAC,sBAAsB,EAC/B,KAAK,cAAc,EACnB,cAAc,MAAM,GAAG,SAAS,KAC/B,iBAqDF,CAAC;AAoCF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,EAAE,CAAC,uBAAuB,EAChC,KAAK,cAAc,EACnB,eAAe,MAAM,KACpB,kBAuMF,CAAC"}
|
|
@@ -3,61 +3,248 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as ts from "typescript";
|
|
5
5
|
import * as path from "path";
|
|
6
|
-
import {
|
|
6
|
+
import { typesEqual } from "../../types/ir-substitution.js";
|
|
7
|
+
import { getSourceSpan, getContextualType } from "./helpers.js";
|
|
7
8
|
import { convertExpression } from "../../expression-converter.js";
|
|
8
9
|
import { computeShapeSignature, generateSyntheticName, getOrCreateSyntheticType, checkSynthesisEligibility, } from "../anonymous-synthesis.js";
|
|
10
|
+
/**
|
|
11
|
+
* Compute the element type for an array literal from its elements' types.
|
|
12
|
+
*
|
|
13
|
+
* Rules:
|
|
14
|
+
* 1. All numeric literals with same intent → use that intent (int, long, double)
|
|
15
|
+
* 2. Mixed Int32/Int64 → Int64
|
|
16
|
+
* 3. Any Double present → double
|
|
17
|
+
* 4. String literals → string
|
|
18
|
+
* 5. Boolean literals → boolean
|
|
19
|
+
* 6. Mixed or complex → fall back to TS inference
|
|
20
|
+
*/
|
|
21
|
+
const computeArrayElementType = (elements, fallbackType) => {
|
|
22
|
+
// Filter out holes and spreads for type analysis
|
|
23
|
+
const regularElements = elements.filter((e) => e !== undefined && e.kind !== "spread");
|
|
24
|
+
if (regularElements.length === 0) {
|
|
25
|
+
// Empty array - use fallback
|
|
26
|
+
return fallbackType;
|
|
27
|
+
}
|
|
28
|
+
// Check if all elements are numeric literals
|
|
29
|
+
const numericIntents = [];
|
|
30
|
+
let allNumericLiterals = true;
|
|
31
|
+
let allStringLiterals = true;
|
|
32
|
+
let allBooleanLiterals = true;
|
|
33
|
+
for (const elem of regularElements) {
|
|
34
|
+
if (elem.kind === "literal") {
|
|
35
|
+
if (typeof elem.value === "number" && elem.numericIntent) {
|
|
36
|
+
numericIntents.push(elem.numericIntent);
|
|
37
|
+
allStringLiterals = false;
|
|
38
|
+
allBooleanLiterals = false;
|
|
39
|
+
}
|
|
40
|
+
else if (typeof elem.value === "string") {
|
|
41
|
+
allNumericLiterals = false;
|
|
42
|
+
allBooleanLiterals = false;
|
|
43
|
+
}
|
|
44
|
+
else if (typeof elem.value === "boolean") {
|
|
45
|
+
allNumericLiterals = false;
|
|
46
|
+
allStringLiterals = false;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// null or other literal
|
|
50
|
+
allNumericLiterals = false;
|
|
51
|
+
allStringLiterals = false;
|
|
52
|
+
allBooleanLiterals = false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Non-literal element - can't determine type deterministically from literals
|
|
57
|
+
allNumericLiterals = false;
|
|
58
|
+
allStringLiterals = false;
|
|
59
|
+
allBooleanLiterals = false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// All numeric literals - determine widest type
|
|
63
|
+
if (allNumericLiterals && numericIntents.length > 0) {
|
|
64
|
+
// Any Double → number (emits as "double" in C#)
|
|
65
|
+
if (numericIntents.includes("Double") ||
|
|
66
|
+
numericIntents.includes("Single")) {
|
|
67
|
+
return { kind: "primitiveType", name: "number" };
|
|
68
|
+
}
|
|
69
|
+
// Any Int64/UInt64 → fall back to TS inference (no primitive for long)
|
|
70
|
+
if (numericIntents.includes("Int64") || numericIntents.includes("UInt64")) {
|
|
71
|
+
return fallbackType;
|
|
72
|
+
}
|
|
73
|
+
// All Int32 or smaller → int
|
|
74
|
+
return { kind: "primitiveType", name: "int" };
|
|
75
|
+
}
|
|
76
|
+
// All string literals
|
|
77
|
+
if (allStringLiterals) {
|
|
78
|
+
return { kind: "primitiveType", name: "string" };
|
|
79
|
+
}
|
|
80
|
+
// All boolean literals
|
|
81
|
+
if (allBooleanLiterals) {
|
|
82
|
+
return { kind: "primitiveType", name: "boolean" };
|
|
83
|
+
}
|
|
84
|
+
// Mixed or complex - fall back to TS inference
|
|
85
|
+
// If all elements have a deterministically known IR type and they match, use it.
|
|
86
|
+
// This enables arrays like `[wrap(1), wrap(2)]` to infer `Container<int>[]`
|
|
87
|
+
// instead of defaulting to `number[]`.
|
|
88
|
+
const knownTypes = [];
|
|
89
|
+
for (const elem of regularElements) {
|
|
90
|
+
const t = elem.inferredType;
|
|
91
|
+
if (!t || t.kind === "unknownType") {
|
|
92
|
+
return fallbackType;
|
|
93
|
+
}
|
|
94
|
+
knownTypes.push(t);
|
|
95
|
+
}
|
|
96
|
+
const first = knownTypes[0];
|
|
97
|
+
if (first && knownTypes.every((t) => typesEqual(first, t))) {
|
|
98
|
+
return first;
|
|
99
|
+
}
|
|
100
|
+
return fallbackType;
|
|
101
|
+
};
|
|
9
102
|
/**
|
|
10
103
|
* Convert array literal expression
|
|
104
|
+
*
|
|
105
|
+
* DETERMINISTIC TYPING:
|
|
106
|
+
* - If expectedType is provided (from LHS annotation), use it
|
|
107
|
+
* - Otherwise, derive from element types using literal form analysis
|
|
108
|
+
* - Default to number[] (double[]) for ergonomics when type cannot be determined
|
|
109
|
+
*
|
|
110
|
+
* @param node - The TypeScript array literal expression
|
|
111
|
+
* @param ctx - ProgramContext for type system and binding access
|
|
112
|
+
* @param expectedType - Expected type from context (e.g., `const a: number[] = [1,2,3]`).
|
|
113
|
+
* Pass `undefined` explicitly when no contextual type exists.
|
|
11
114
|
*/
|
|
12
|
-
export const convertArrayLiteral = (node,
|
|
115
|
+
export const convertArrayLiteral = (node, ctx, expectedType) => {
|
|
116
|
+
// Determine element expected type from array expected type
|
|
117
|
+
const expectedElementType = expectedType?.kind === "arrayType" ? expectedType.elementType : undefined;
|
|
118
|
+
// Convert all elements, passing expected element type for contextual typing
|
|
119
|
+
const elements = node.elements.map((elem) => {
|
|
120
|
+
if (ts.isOmittedExpression(elem)) {
|
|
121
|
+
return undefined; // Hole in sparse array
|
|
122
|
+
}
|
|
123
|
+
if (ts.isSpreadElement(elem)) {
|
|
124
|
+
// Spread element - convert and derive type from expression
|
|
125
|
+
const spreadExpr = convertExpression(elem.expression, ctx, expectedType);
|
|
126
|
+
return {
|
|
127
|
+
kind: "spread",
|
|
128
|
+
expression: spreadExpr,
|
|
129
|
+
inferredType: spreadExpr.inferredType,
|
|
130
|
+
sourceSpan: getSourceSpan(elem),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return convertExpression(elem, ctx, expectedElementType);
|
|
134
|
+
});
|
|
135
|
+
// DETERMINISTIC TYPING: Determine inferredType using priority:
|
|
136
|
+
// 1. Expected type from context (e.g., LHS annotation, parameter type)
|
|
137
|
+
// 2. Literal-form inference (derive from element types)
|
|
138
|
+
// 3. Default: number[] (double[]) for ergonomics
|
|
139
|
+
const inferredType = expectedType?.kind === "arrayType"
|
|
140
|
+
? expectedType
|
|
141
|
+
: (() => {
|
|
142
|
+
// No expected type - derive from element types
|
|
143
|
+
const elementType = computeArrayElementType(elements, undefined);
|
|
144
|
+
if (elementType) {
|
|
145
|
+
return { kind: "arrayType", elementType };
|
|
146
|
+
}
|
|
147
|
+
// Default to number[] (double[]) for ergonomics
|
|
148
|
+
// This matches Alice's guidance: untyped arrays default to double[]
|
|
149
|
+
return {
|
|
150
|
+
kind: "arrayType",
|
|
151
|
+
elementType: {
|
|
152
|
+
kind: "primitiveType",
|
|
153
|
+
name: "number",
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
})();
|
|
13
157
|
return {
|
|
14
158
|
kind: "array",
|
|
15
|
-
elements
|
|
16
|
-
|
|
17
|
-
return undefined; // Hole in sparse array
|
|
18
|
-
}
|
|
19
|
-
if (ts.isSpreadElement(elem)) {
|
|
20
|
-
return {
|
|
21
|
-
kind: "spread",
|
|
22
|
-
expression: convertExpression(elem.expression, checker),
|
|
23
|
-
sourceSpan: getSourceSpan(elem),
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
return convertExpression(elem, checker);
|
|
27
|
-
}),
|
|
28
|
-
inferredType: getInferredType(node, checker),
|
|
159
|
+
elements,
|
|
160
|
+
inferredType,
|
|
29
161
|
sourceSpan: getSourceSpan(node),
|
|
30
162
|
};
|
|
31
163
|
};
|
|
164
|
+
/**
|
|
165
|
+
* Get the expected type for an object property from the parent expected type.
|
|
166
|
+
*
|
|
167
|
+
* If expectedType is an objectType, looks up the property member directly.
|
|
168
|
+
* If expectedType is a referenceType, we can't resolve it here (would need symbol table).
|
|
169
|
+
*/
|
|
170
|
+
const getPropertyExpectedType = (propName, expectedType, ctx) => {
|
|
171
|
+
if (!expectedType)
|
|
172
|
+
return undefined;
|
|
173
|
+
if (expectedType.kind === "objectType") {
|
|
174
|
+
// Direct member lookup - only check property signatures (not methods)
|
|
175
|
+
const member = expectedType.members.find((m) => m.kind === "propertySignature" && m.name === propName);
|
|
176
|
+
return member?.kind === "propertySignature" ? member.type : undefined;
|
|
177
|
+
}
|
|
178
|
+
if (expectedType.kind === "referenceType") {
|
|
179
|
+
// Use TypeSystem to resolve nominal members deterministically, including inherited members
|
|
180
|
+
// and generic substitutions (e.g., `DeepContainer<T>.level1`).
|
|
181
|
+
const memberType = ctx.typeSystem.typeOfMember(expectedType, {
|
|
182
|
+
kind: "byName",
|
|
183
|
+
name: propName,
|
|
184
|
+
});
|
|
185
|
+
return memberType.kind === "unknownType" ? undefined : memberType;
|
|
186
|
+
}
|
|
187
|
+
return undefined;
|
|
188
|
+
};
|
|
32
189
|
/**
|
|
33
190
|
* Convert object literal expression
|
|
34
191
|
*
|
|
35
192
|
* If no contextual nominal type exists and the literal is eligible for synthesis,
|
|
36
193
|
* a synthetic type is generated and used as the contextual type.
|
|
194
|
+
*
|
|
195
|
+
* Threads expectedType to property values when the expected type is an objectType.
|
|
37
196
|
*/
|
|
38
|
-
export const convertObjectLiteral = (node,
|
|
197
|
+
export const convertObjectLiteral = (node, ctx, expectedType) => {
|
|
39
198
|
const properties = [];
|
|
40
199
|
// Track if we have any spreads (needed for emitter IIFE lowering)
|
|
41
200
|
let hasSpreads = false;
|
|
42
201
|
node.properties.forEach((prop) => {
|
|
43
202
|
if (ts.isPropertyAssignment(prop)) {
|
|
203
|
+
const keyName = ts.isIdentifier(prop.name)
|
|
204
|
+
? prop.name.text
|
|
205
|
+
: ts.isStringLiteral(prop.name)
|
|
206
|
+
? prop.name.text
|
|
207
|
+
: undefined;
|
|
44
208
|
const key = ts.isComputedPropertyName(prop.name)
|
|
45
|
-
? convertExpression(prop.name.expression,
|
|
209
|
+
? convertExpression(prop.name.expression, ctx, undefined)
|
|
46
210
|
: ts.isIdentifier(prop.name)
|
|
47
211
|
? prop.name.text
|
|
48
212
|
: String(prop.name.text);
|
|
213
|
+
// Look up property expected type from parent expected type
|
|
214
|
+
const propExpectedType = keyName
|
|
215
|
+
? getPropertyExpectedType(keyName, expectedType, ctx)
|
|
216
|
+
: undefined;
|
|
49
217
|
properties.push({
|
|
50
218
|
kind: "property",
|
|
51
219
|
key,
|
|
52
|
-
value: convertExpression(prop.initializer,
|
|
220
|
+
value: convertExpression(prop.initializer, ctx, propExpectedType),
|
|
53
221
|
shorthand: false,
|
|
54
222
|
});
|
|
55
223
|
}
|
|
56
224
|
else if (ts.isShorthandPropertyAssignment(prop)) {
|
|
225
|
+
// DETERMINISTIC: Derive identifier type from the VALUE being assigned, not the property
|
|
226
|
+
// For { value }, we need to get the type of the variable `value`, not the property `value`
|
|
227
|
+
// ALICE'S SPEC: Use TypeSystem.typeOfDecl() to get the variable's type
|
|
228
|
+
const declId = ctx.binding.resolveShorthandAssignment(prop);
|
|
229
|
+
let inferredType;
|
|
230
|
+
if (declId) {
|
|
231
|
+
const typeSystem = ctx.typeSystem;
|
|
232
|
+
const declType = typeSystem.typeOfDecl(declId);
|
|
233
|
+
// If TypeSystem returns unknownType, treat as not found
|
|
234
|
+
if (declType.kind !== "unknownType") {
|
|
235
|
+
inferredType = declType;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
57
238
|
properties.push({
|
|
58
239
|
kind: "property",
|
|
59
240
|
key: prop.name.text,
|
|
60
|
-
value: {
|
|
241
|
+
value: {
|
|
242
|
+
kind: "identifier",
|
|
243
|
+
name: prop.name.text,
|
|
244
|
+
inferredType,
|
|
245
|
+
sourceSpan: getSourceSpan(prop.name),
|
|
246
|
+
declId,
|
|
247
|
+
},
|
|
61
248
|
shorthand: true,
|
|
62
249
|
});
|
|
63
250
|
}
|
|
@@ -65,44 +252,111 @@ export const convertObjectLiteral = (node, checker) => {
|
|
|
65
252
|
hasSpreads = true;
|
|
66
253
|
properties.push({
|
|
67
254
|
kind: "spread",
|
|
68
|
-
expression: convertExpression(prop.expression,
|
|
255
|
+
expression: convertExpression(prop.expression, ctx, undefined),
|
|
69
256
|
});
|
|
70
257
|
}
|
|
71
258
|
// Skip getters/setters/methods for now (can add later if needed)
|
|
72
259
|
});
|
|
73
|
-
//
|
|
74
|
-
|
|
260
|
+
// Contextual type priority:
|
|
261
|
+
// 1) expectedType threaded from the parent converter (return, assignment, parameter, etc.)
|
|
262
|
+
// 2) AST-based contextual typing from explicit TypeNodes (getContextualType)
|
|
263
|
+
let contextualType = expectedType ?? getContextualType(node, ctx);
|
|
264
|
+
// `object`/`any`/`unknown` are not valid nominal instantiation targets for object literals.
|
|
265
|
+
// Treat them as "no contextual type" so TSN7403 synthesis can produce a concrete shape type.
|
|
266
|
+
if (contextualType?.kind === "anyType" ||
|
|
267
|
+
contextualType?.kind === "unknownType" ||
|
|
268
|
+
(contextualType?.kind === "referenceType" && contextualType.name === "object")) {
|
|
269
|
+
contextualType = undefined;
|
|
270
|
+
}
|
|
75
271
|
// If no contextual type, check if eligible for synthesis
|
|
272
|
+
// DETERMINISTIC IR TYPING (INV-0 compliant): Uses AST-based synthesis
|
|
76
273
|
if (!contextualType) {
|
|
77
|
-
const eligibility = checkSynthesisEligibility(node,
|
|
274
|
+
const eligibility = checkSynthesisEligibility(node, ctx);
|
|
78
275
|
if (eligibility.eligible) {
|
|
79
|
-
//
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
276
|
+
// Extract property info from already-converted properties (AST-based)
|
|
277
|
+
const propInfos = [];
|
|
278
|
+
let canSynthesize = true;
|
|
279
|
+
for (const prop of properties) {
|
|
280
|
+
if (prop.kind === "property") {
|
|
281
|
+
// Get property name (must be a string for synthesis)
|
|
282
|
+
const keyName = typeof prop.key === "string" ? prop.key : undefined;
|
|
283
|
+
if (!keyName) {
|
|
284
|
+
canSynthesize = false;
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
// Get type from converted expression's inferredType
|
|
288
|
+
const propType = prop.value.inferredType;
|
|
289
|
+
if (!propType ||
|
|
290
|
+
propType.kind === "unknownType" ||
|
|
291
|
+
propType.kind === "anyType") {
|
|
292
|
+
// Cannot synthesize if property type is unknown/any
|
|
293
|
+
canSynthesize = false;
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
propInfos.push({
|
|
297
|
+
name: keyName,
|
|
298
|
+
type: propType,
|
|
299
|
+
optional: false,
|
|
300
|
+
readonly: false,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
else if (prop.kind === "spread") {
|
|
304
|
+
// For spreads, merge properties from the spread source's objectType
|
|
305
|
+
const spreadType = prop.expression.inferredType;
|
|
306
|
+
if (spreadType?.kind === "objectType") {
|
|
307
|
+
for (const member of spreadType.members) {
|
|
308
|
+
if (member.kind === "propertySignature") {
|
|
309
|
+
propInfos.push({
|
|
310
|
+
name: member.name,
|
|
311
|
+
type: member.type,
|
|
312
|
+
optional: member.isOptional,
|
|
313
|
+
readonly: member.isReadonly,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (spreadType?.kind === "referenceType") {
|
|
319
|
+
// Reference type spread - can still synthesize, the reference is kept
|
|
320
|
+
// The spread's type will be resolved at emit time
|
|
321
|
+
canSynthesize = false; // For now, require object type spreads
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
canSynthesize = false;
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (canSynthesize && propInfos.length > 0) {
|
|
331
|
+
// Compute shape signature for deduplication (AST-based)
|
|
332
|
+
const shapeSignature = computeShapeSignature(propInfos);
|
|
333
|
+
// Get source file info for synthetic name
|
|
334
|
+
const sourceFile = node.getSourceFile();
|
|
335
|
+
const fileStem = path.basename(sourceFile.fileName, path.extname(sourceFile.fileName));
|
|
336
|
+
const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
337
|
+
// Generate synthetic name
|
|
338
|
+
const syntheticName = generateSyntheticName(fileStem, line + 1, character + 1);
|
|
339
|
+
// Get or create synthetic type (handles deduplication)
|
|
340
|
+
// DETERMINISTIC: Takes pre-computed PropertyInfo array
|
|
341
|
+
const syntheticEntry = getOrCreateSyntheticType(shapeSignature, syntheticName, propInfos, [] // No captured type params for now
|
|
342
|
+
);
|
|
343
|
+
// Create reference to synthetic type
|
|
344
|
+
const syntheticRef = {
|
|
345
|
+
kind: "referenceType",
|
|
346
|
+
name: syntheticEntry.name,
|
|
347
|
+
typeArguments: undefined,
|
|
348
|
+
};
|
|
349
|
+
contextualType = syntheticRef;
|
|
350
|
+
}
|
|
100
351
|
}
|
|
101
352
|
}
|
|
353
|
+
// DETERMINISTIC TYPING: Object's inferredType comes from contextualType
|
|
354
|
+
// (which may be from LHS annotation or synthesized type).
|
|
355
|
+
// We don't derive from properties because that would require TS inference.
|
|
102
356
|
return {
|
|
103
357
|
kind: "object",
|
|
104
358
|
properties,
|
|
105
|
-
inferredType:
|
|
359
|
+
inferredType: contextualType, // Use contextual type if available
|
|
106
360
|
sourceSpan: getSourceSpan(node),
|
|
107
361
|
contextualType,
|
|
108
362
|
hasSpreads, // Add flag for emitter to know about spreads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/collections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/collections.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,20 @@
|
|
|
2
2
|
* Function expression converters (function expressions and arrow functions)
|
|
3
3
|
*/
|
|
4
4
|
import * as ts from "typescript";
|
|
5
|
-
import { IrFunctionExpression, IrArrowFunctionExpression } from "../../types.js";
|
|
5
|
+
import { IrFunctionExpression, IrArrowFunctionExpression, IrType } from "../../types.js";
|
|
6
|
+
import type { ProgramContext } from "../../program-context.js";
|
|
6
7
|
/**
|
|
7
8
|
* Convert function expression
|
|
9
|
+
*
|
|
10
|
+
* DETERMINISTIC TYPING: Build function type from declared parameters and return type.
|
|
11
|
+
* Parameter types come from explicit annotations or expectedType (no TS inference).
|
|
8
12
|
*/
|
|
9
|
-
export declare const convertFunctionExpression: (node: ts.FunctionExpression,
|
|
13
|
+
export declare const convertFunctionExpression: (node: ts.FunctionExpression, ctx: ProgramContext, expectedType?: IrType) => IrFunctionExpression;
|
|
10
14
|
/**
|
|
11
15
|
* Convert arrow function expression
|
|
16
|
+
*
|
|
17
|
+
* DETERMINISTIC TYPING: Build function type from declared parameters and return type.
|
|
18
|
+
* Parameter types come from explicit annotations or expectedType (no TS inference).
|
|
12
19
|
*/
|
|
13
|
-
export declare const convertArrowFunction: (node: ts.ArrowFunction,
|
|
20
|
+
export declare const convertArrowFunction: (node: ts.ArrowFunction, ctx: ProgramContext, expectedType?: IrType) => IrArrowFunctionExpression;
|
|
14
21
|
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAEzB,MAAM,EACP,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAiG/D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,EAAE,CAAC,kBAAkB,EAC3B,KAAK,cAAc,EACnB,eAAe,MAAM,KACpB,oBAiDF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,EAAE,CAAC,aAAa,EACtB,KAAK,cAAc,EACnB,eAAe,MAAM,KACpB,yBAmFF,CAAC"}
|