@tsonic/emitter 0.0.61 → 0.0.63
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/adapter-generator.d.ts +5 -15
- package/dist/adapter-generator.d.ts.map +1 -1
- package/dist/adapter-generator.js +60 -53
- package/dist/adapter-generator.js.map +1 -1
- package/dist/contracts/backend-adapter.d.ts +36 -0
- package/dist/contracts/backend-adapter.d.ts.map +1 -0
- package/dist/contracts/backend-adapter.js +9 -0
- package/dist/contracts/backend-adapter.js.map +1 -0
- package/dist/contracts/emitter-contract.d.ts +54 -0
- package/dist/contracts/emitter-contract.d.ts.map +1 -0
- package/dist/contracts/emitter-contract.js +8 -0
- package/dist/contracts/emitter-contract.js.map +1 -0
- package/dist/contracts/import-classifier.d.ts +36 -0
- package/dist/contracts/import-classifier.d.ts.map +1 -0
- package/dist/contracts/import-classifier.js +9 -0
- package/dist/contracts/import-classifier.js.map +1 -0
- package/dist/core/{attributes.d.ts → format/attributes.d.ts} +9 -14
- package/dist/core/format/attributes.d.ts.map +1 -0
- package/dist/core/format/attributes.js +190 -0
- package/dist/core/format/attributes.js.map +1 -0
- package/dist/core/format/attributes.test.d.ts.map +1 -0
- package/dist/core/{attributes.test.js → format/attributes.test.js} +70 -32
- package/dist/core/format/attributes.test.js.map +1 -0
- package/dist/core/format/backend-ast/index.d.ts +7 -0
- package/dist/core/format/backend-ast/index.d.ts.map +1 -0
- package/dist/core/format/backend-ast/index.js +6 -0
- package/dist/core/format/backend-ast/index.js.map +1 -0
- package/dist/core/format/backend-ast/printer.d.ts +33 -0
- package/dist/core/format/backend-ast/printer.d.ts.map +1 -0
- package/dist/core/format/backend-ast/printer.js +1151 -0
- package/dist/core/format/backend-ast/printer.js.map +1 -0
- package/dist/core/format/backend-ast/types.d.ts +504 -0
- package/dist/core/format/backend-ast/types.d.ts.map +1 -0
- package/dist/core/format/backend-ast/types.js +13 -0
- package/dist/core/format/backend-ast/types.js.map +1 -0
- package/dist/core/format/backend-ast/utils.d.ts +26 -0
- package/dist/core/format/backend-ast/utils.d.ts.map +1 -0
- package/dist/core/format/backend-ast/utils.js +65 -0
- package/dist/core/format/backend-ast/utils.js.map +1 -0
- package/dist/core/{exports.d.ts → format/exports.d.ts} +2 -2
- package/dist/core/format/exports.d.ts.map +1 -0
- package/dist/core/format/exports.js +22 -0
- package/dist/core/format/exports.js.map +1 -0
- package/dist/core/format/index.d.ts +9 -0
- package/dist/core/format/index.d.ts.map +1 -0
- package/dist/core/format/index.js +9 -0
- package/dist/core/format/index.js.map +1 -0
- package/dist/core/{local-names.d.ts → format/local-names.d.ts} +1 -1
- package/dist/core/format/local-names.d.ts.map +1 -0
- package/dist/core/{local-names.js → format/local-names.js} +3 -2
- package/dist/core/format/local-names.js.map +1 -0
- package/dist/core/format/module-emitter/assembly.d.ts +27 -0
- package/dist/core/format/module-emitter/assembly.d.ts.map +1 -0
- package/dist/core/format/module-emitter/assembly.js +44 -0
- package/dist/core/format/module-emitter/assembly.js.map +1 -0
- package/dist/core/{module-emitter → format/module-emitter}/header.d.ts +1 -1
- package/dist/core/format/module-emitter/header.d.ts.map +1 -0
- package/dist/core/{module-emitter → format/module-emitter}/header.js +1 -1
- package/dist/core/format/module-emitter/header.js.map +1 -0
- package/dist/core/format/module-emitter/index.d.ts.map +1 -0
- package/dist/core/format/module-emitter/index.js.map +1 -0
- package/dist/core/format/module-emitter/namespace.d.ts +21 -0
- package/dist/core/format/module-emitter/namespace.d.ts.map +1 -0
- package/dist/core/format/module-emitter/namespace.js +58 -0
- package/dist/core/format/module-emitter/namespace.js.map +1 -0
- package/dist/core/{module-emitter → format/module-emitter}/orchestrator.d.ts +1 -1
- package/dist/core/format/module-emitter/orchestrator.d.ts.map +1 -0
- package/dist/core/format/module-emitter/orchestrator.js +254 -0
- package/dist/core/format/module-emitter/orchestrator.js.map +1 -0
- package/dist/core/format/module-emitter/separation.d.ts.map +1 -0
- package/dist/core/format/module-emitter/separation.js.map +1 -0
- package/dist/core/{module-emitter → format/module-emitter}/static-container.d.ts +8 -3
- package/dist/core/format/module-emitter/static-container.d.ts.map +1 -0
- package/dist/core/format/module-emitter/static-container.js +202 -0
- package/dist/core/format/module-emitter/static-container.js.map +1 -0
- package/dist/core/format/module-emitter.d.ts.map +1 -0
- package/dist/core/format/module-emitter.js.map +1 -0
- package/dist/core/{options.d.ts → format/options.d.ts} +1 -1
- package/dist/core/format/options.d.ts.map +1 -0
- package/dist/core/format/options.js.map +1 -0
- package/dist/core/index.d.ts +2 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -7
- package/dist/core/index.js.map +1 -1
- package/dist/core/module-emitter.test.js.map +1 -1
- package/dist/core/semantic/boolean-context.d.ts +44 -0
- package/dist/core/semantic/boolean-context.d.ts.map +1 -0
- package/dist/core/semantic/boolean-context.js +655 -0
- package/dist/core/semantic/boolean-context.js.map +1 -0
- package/dist/core/semantic/boolean-context.test.d.ts.map +1 -0
- package/dist/core/{boolean-context.test.js → semantic/boolean-context.test.js} +56 -103
- package/dist/core/semantic/boolean-context.test.js.map +1 -0
- package/dist/core/{imports.d.ts → semantic/imports.d.ts} +1 -5
- package/dist/core/semantic/imports.d.ts.map +1 -0
- package/dist/core/{imports.js → semantic/imports.js} +9 -78
- package/dist/core/semantic/imports.js.map +1 -0
- package/dist/core/semantic/imports.test.d.ts.map +1 -0
- package/dist/core/{imports.test.js → semantic/imports.test.js} +1 -1
- package/dist/core/semantic/imports.test.js.map +1 -0
- package/dist/core/semantic/index.d.ts +15 -0
- package/dist/core/semantic/index.d.ts.map +1 -0
- package/dist/core/semantic/index.js +15 -0
- package/dist/core/semantic/index.js.map +1 -0
- package/dist/core/{local-types.d.ts → semantic/local-types.d.ts} +1 -1
- package/dist/core/semantic/local-types.d.ts.map +1 -0
- package/dist/core/semantic/local-types.js.map +1 -0
- package/dist/core/{module-map.d.ts → semantic/module-map.d.ts} +1 -1
- package/dist/core/semantic/module-map.d.ts.map +1 -0
- package/dist/core/semantic/module-map.js.map +1 -0
- package/dist/core/semantic/module-map.test.d.ts.map +1 -0
- package/dist/core/semantic/module-map.test.js.map +1 -0
- package/dist/core/semantic/naming-collisions.d.ts.map +1 -0
- package/dist/core/{naming-collisions.js → semantic/naming-collisions.js} +3 -2
- package/dist/core/semantic/naming-collisions.js.map +1 -0
- package/dist/core/{type-alias-index.d.ts → semantic/type-alias-index.d.ts} +1 -1
- package/dist/core/semantic/type-alias-index.d.ts.map +1 -0
- package/dist/core/semantic/type-alias-index.js.map +1 -0
- package/dist/core/semantic/type-compatibility.d.ts.map +1 -0
- package/dist/core/semantic/type-compatibility.js.map +1 -0
- package/dist/core/{type-member-index.d.ts → semantic/type-member-index.d.ts} +1 -1
- package/dist/core/semantic/type-member-index.d.ts.map +1 -0
- package/dist/core/semantic/type-member-index.js.map +1 -0
- package/dist/core/semantic/type-params.d.ts.map +1 -0
- package/dist/core/semantic/type-params.js.map +1 -0
- package/dist/core/{type-resolution.d.ts → semantic/type-resolution.d.ts} +3 -6
- package/dist/core/semantic/type-resolution.d.ts.map +1 -0
- package/dist/core/{type-resolution.js → semantic/type-resolution.js} +78 -47
- package/dist/core/semantic/type-resolution.js.map +1 -0
- package/dist/core/semantic/type-resolution.test.d.ts.map +1 -0
- package/dist/core/{type-resolution.test.js → semantic/type-resolution.test.js} +155 -20
- package/dist/core/semantic/type-resolution.test.js.map +1 -0
- package/dist/core/semantic/unsafe.d.ts.map +1 -0
- package/dist/core/{unsafe.js → semantic/unsafe.js} +8 -6
- package/dist/core/semantic/unsafe.js.map +1 -0
- package/dist/emitter-types/core.d.ts +50 -12
- package/dist/emitter-types/core.d.ts.map +1 -1
- package/dist/emitter-types/index.d.ts +1 -1
- package/dist/emitter-types/index.d.ts.map +1 -1
- package/dist/emitter-types/index.js.map +1 -1
- package/dist/emitter.d.ts +1 -1
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +216 -16
- package/dist/emitter.js.map +1 -1
- package/dist/expression-emitter.d.ts +10 -5
- package/dist/expression-emitter.d.ts.map +1 -1
- package/dist/expression-emitter.js +135 -121
- package/dist/expression-emitter.js.map +1 -1
- package/dist/expressions/access.d.ts +4 -3
- package/dist/expressions/access.d.ts.map +1 -1
- package/dist/expressions/access.js +299 -109
- package/dist/expressions/access.js.map +1 -1
- package/dist/expressions/calls/call-analysis.d.ts +86 -0
- package/dist/expressions/calls/call-analysis.d.ts.map +1 -0
- package/dist/expressions/calls/call-analysis.js +284 -0
- package/dist/expressions/calls/call-analysis.js.map +1 -0
- package/dist/expressions/calls/call-emitter.d.ts +13 -0
- package/dist/expressions/calls/call-emitter.d.ts.map +1 -0
- package/dist/expressions/calls/call-emitter.js +876 -0
- package/dist/expressions/calls/call-emitter.js.map +1 -0
- package/dist/expressions/calls/new-emitter.d.ts +13 -0
- package/dist/expressions/calls/new-emitter.d.ts.map +1 -0
- package/dist/expressions/calls/new-emitter.js +641 -0
- package/dist/expressions/calls/new-emitter.js.map +1 -0
- package/dist/expressions/calls.d.ts +2 -14
- package/dist/expressions/calls.d.ts.map +1 -1
- package/dist/expressions/calls.js +2 -744
- package/dist/expressions/calls.js.map +1 -1
- package/dist/expressions/collections.d.ts +6 -16
- package/dist/expressions/collections.d.ts.map +1 -1
- package/dist/expressions/collections.js +303 -218
- package/dist/expressions/collections.js.map +1 -1
- package/dist/expressions/functions.d.ts +6 -5
- package/dist/expressions/functions.d.ts.map +1 -1
- package/dist/expressions/functions.js +57 -62
- package/dist/expressions/functions.js.map +1 -1
- package/dist/expressions/identifiers.d.ts +11 -6
- package/dist/expressions/identifiers.d.ts.map +1 -1
- package/dist/expressions/identifiers.js +81 -25
- package/dist/expressions/identifiers.js.map +1 -1
- package/dist/expressions/index.d.ts +1 -1
- package/dist/expressions/index.d.ts.map +1 -1
- package/dist/expressions/index.js +1 -1
- package/dist/expressions/index.js.map +1 -1
- package/dist/expressions/index.test.js +522 -3
- package/dist/expressions/index.test.js.map +1 -1
- package/dist/expressions/literals.d.ts +4 -3
- package/dist/expressions/literals.d.ts.map +1 -1
- package/dist/expressions/literals.js +25 -17
- package/dist/expressions/literals.js.map +1 -1
- package/dist/expressions/literals.test.js +18 -18
- package/dist/expressions/literals.test.js.map +1 -1
- package/dist/expressions/operators/assignment-emitter.d.ts +16 -0
- package/dist/expressions/operators/assignment-emitter.d.ts.map +1 -0
- package/dist/expressions/operators/assignment-emitter.js +118 -0
- package/dist/expressions/operators/assignment-emitter.js.map +1 -0
- package/dist/expressions/operators/binary-emitter.d.ts +33 -0
- package/dist/expressions/operators/binary-emitter.d.ts.map +1 -0
- package/dist/expressions/operators/binary-emitter.js +398 -0
- package/dist/expressions/operators/binary-emitter.js.map +1 -0
- package/dist/expressions/operators/conditional-emitter.d.ts +17 -0
- package/dist/expressions/operators/conditional-emitter.d.ts.map +1 -0
- package/dist/expressions/operators/conditional-emitter.js +306 -0
- package/dist/expressions/operators/conditional-emitter.js.map +1 -0
- package/dist/expressions/operators/helpers.d.ts +37 -0
- package/dist/expressions/operators/helpers.d.ts.map +1 -0
- package/dist/expressions/operators/helpers.js +136 -0
- package/dist/expressions/operators/helpers.js.map +1 -0
- package/dist/expressions/operators/logical-emitter.d.ts +23 -0
- package/dist/expressions/operators/logical-emitter.d.ts.map +1 -0
- package/dist/expressions/operators/logical-emitter.js +73 -0
- package/dist/expressions/operators/logical-emitter.js.map +1 -0
- package/dist/expressions/operators/unary-emitter.d.ts +30 -0
- package/dist/expressions/operators/unary-emitter.d.ts.map +1 -0
- package/dist/expressions/operators/unary-emitter.js +244 -0
- package/dist/expressions/operators/unary-emitter.js.map +1 -0
- package/dist/expressions/operators.d.ts +5 -81
- package/dist/expressions/operators.d.ts.map +1 -1
- package/dist/expressions/operators.js +5 -868
- package/dist/expressions/operators.js.map +1 -1
- package/dist/expressions/other.d.ts +15 -11
- package/dist/expressions/other.d.ts.map +1 -1
- package/dist/expressions/other.js +55 -38
- package/dist/expressions/other.js.map +1 -1
- package/dist/expressions/parentheses.d.ts.map +1 -1
- package/dist/expressions/parentheses.js +2 -1
- package/dist/expressions/parentheses.js.map +1 -1
- package/dist/expressions/precedence.test.js +6 -2
- package/dist/expressions/precedence.test.js.map +1 -1
- package/dist/generator-exchange.d.ts +10 -3
- package/dist/generator-exchange.d.ts.map +1 -1
- package/dist/generator-exchange.js +57 -54
- package/dist/generator-exchange.js.map +1 -1
- package/dist/generator-wrapper.d.ts +17 -65
- package/dist/generator-wrapper.d.ts.map +1 -1
- package/dist/generator-wrapper.js +396 -220
- package/dist/generator-wrapper.js.map +1 -1
- package/dist/generator-wrapper.test.js +22 -14
- package/dist/generator-wrapper.test.js.map +1 -1
- package/dist/golden-shards.d.ts.map +1 -1
- package/dist/golden-shards.js.map +1 -1
- package/dist/golden-tests/runner.d.ts.map +1 -1
- package/dist/golden-tests/runner.js +3 -1
- package/dist/golden-tests/runner.js.map +1 -1
- package/dist/integration.test.js +166 -1
- package/dist/integration.test.js.map +1 -1
- package/dist/json-aot-generic.test.js +8 -2
- package/dist/json-aot-generic.test.js.map +1 -1
- package/dist/patterns.d.ts +18 -88
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +540 -304
- package/dist/patterns.js.map +1 -1
- package/dist/patterns.test.js +5 -4
- package/dist/patterns.test.js.map +1 -1
- package/dist/specialization/generation.d.ts +7 -3
- package/dist/specialization/generation.d.ts.map +1 -1
- package/dist/specialization/generation.js +32 -16
- package/dist/specialization/generation.js.map +1 -1
- package/dist/specialization/type-aliases.test.js +3 -2
- package/dist/specialization/type-aliases.test.js.map +1 -1
- package/dist/statement-emitter.d.ts +15 -4
- package/dist/statement-emitter.d.ts.map +1 -1
- package/dist/statement-emitter.js +54 -47
- package/dist/statement-emitter.js.map +1 -1
- package/dist/statements/blocks.d.ts +24 -16
- package/dist/statements/blocks.d.ts.map +1 -1
- package/dist/statements/blocks.js +193 -66
- package/dist/statements/blocks.js.map +1 -1
- package/dist/statements/classes/index.d.ts +1 -1
- package/dist/statements/classes/index.d.ts.map +1 -1
- package/dist/statements/classes/index.js +1 -1
- package/dist/statements/classes/index.js.map +1 -1
- package/dist/statements/classes/inline-types.d.ts +4 -3
- package/dist/statements/classes/inline-types.d.ts.map +1 -1
- package/dist/statements/classes/inline-types.js +21 -21
- package/dist/statements/classes/inline-types.js.map +1 -1
- package/dist/statements/classes/members/constructors.d.ts +4 -3
- package/dist/statements/classes/members/constructors.d.ts.map +1 -1
- package/dist/statements/classes/members/constructors.js +57 -58
- package/dist/statements/classes/members/constructors.js.map +1 -1
- package/dist/statements/classes/members/methods.d.ts +4 -3
- package/dist/statements/classes/members/methods.d.ts.map +1 -1
- package/dist/statements/classes/members/methods.js +98 -98
- package/dist/statements/classes/members/methods.js.map +1 -1
- package/dist/statements/classes/members/orchestrator.d.ts +4 -3
- package/dist/statements/classes/members/orchestrator.d.ts.map +1 -1
- package/dist/statements/classes/members/orchestrator.js +2 -2
- package/dist/statements/classes/members/orchestrator.js.map +1 -1
- package/dist/statements/classes/members/properties.d.ts +4 -3
- package/dist/statements/classes/members/properties.d.ts.map +1 -1
- package/dist/statements/classes/members/properties.js +109 -89
- package/dist/statements/classes/members/properties.js.map +1 -1
- package/dist/statements/classes/members/shadowing.test.js +7 -2
- package/dist/statements/classes/members/shadowing.test.js.map +1 -1
- package/dist/statements/classes/members/static-readonly-properties.test.js +10 -2
- package/dist/statements/classes/members/static-readonly-properties.test.js.map +1 -1
- package/dist/statements/classes/parameters.d.ts +8 -10
- package/dist/statements/classes/parameters.d.ts.map +1 -1
- package/dist/statements/classes/parameters.js +30 -26
- package/dist/statements/classes/parameters.js.map +1 -1
- package/dist/statements/classes/properties.d.ts +4 -3
- package/dist/statements/classes/properties.d.ts.map +1 -1
- package/dist/statements/classes/properties.js +76 -50
- package/dist/statements/classes/properties.js.map +1 -1
- package/dist/statements/classes.d.ts +1 -1
- package/dist/statements/classes.d.ts.map +1 -1
- package/dist/statements/classes.js +1 -1
- package/dist/statements/classes.js.map +1 -1
- package/dist/statements/control/conditionals/guard-analysis.d.ts +169 -0
- package/dist/statements/control/conditionals/guard-analysis.d.ts.map +1 -0
- package/dist/statements/control/conditionals/guard-analysis.js +591 -0
- package/dist/statements/control/conditionals/guard-analysis.js.map +1 -0
- package/dist/statements/control/conditionals/if-emitter.d.ts +14 -0
- package/dist/statements/control/conditionals/if-emitter.d.ts.map +1 -0
- package/dist/statements/control/conditionals/if-emitter.js +725 -0
- package/dist/statements/control/conditionals/if-emitter.js.map +1 -0
- package/dist/statements/control/conditionals/switch-emitter.d.ts +13 -0
- package/dist/statements/control/conditionals/switch-emitter.d.ts.map +1 -0
- package/dist/statements/control/conditionals/switch-emitter.js +60 -0
- package/dist/statements/control/conditionals/switch-emitter.js.map +1 -0
- package/dist/statements/control/conditionals.d.ts +3 -15
- package/dist/statements/control/conditionals.d.ts.map +1 -1
- package/dist/statements/control/conditionals.js +3 -1065
- package/dist/statements/control/conditionals.js.map +1 -1
- package/dist/statements/control/exceptions.d.ts +8 -6
- package/dist/statements/control/exceptions.d.ts.map +1 -1
- package/dist/statements/control/exceptions.js +35 -23
- package/dist/statements/control/exceptions.js.map +1 -1
- package/dist/statements/control/index.d.ts +3 -3
- package/dist/statements/control/index.d.ts.map +1 -1
- package/dist/statements/control/index.js +3 -3
- package/dist/statements/control/index.js.map +1 -1
- package/dist/statements/control/loops.d.ts +14 -12
- package/dist/statements/control/loops.d.ts.map +1 -1
- package/dist/statements/control/loops.js +147 -82
- package/dist/statements/control/loops.js.map +1 -1
- package/dist/statements/control.d.ts +1 -1
- package/dist/statements/control.d.ts.map +1 -1
- package/dist/statements/control.js +1 -1
- package/dist/statements/control.js.map +1 -1
- package/dist/statements/declarations/classes.d.ts +7 -3
- package/dist/statements/declarations/classes.d.ts.map +1 -1
- package/dist/statements/declarations/classes.js +72 -86
- package/dist/statements/declarations/classes.js.map +1 -1
- package/dist/statements/declarations/enums.d.ts +4 -3
- package/dist/statements/declarations/enums.d.ts.map +1 -1
- package/dist/statements/declarations/enums.js +18 -16
- package/dist/statements/declarations/enums.js.map +1 -1
- package/dist/statements/declarations/functions.d.ts +18 -2
- package/dist/statements/declarations/functions.d.ts.map +1 -1
- package/dist/statements/declarations/functions.js +625 -159
- package/dist/statements/declarations/functions.js.map +1 -1
- package/dist/statements/declarations/index.d.ts +2 -2
- package/dist/statements/declarations/index.d.ts.map +1 -1
- package/dist/statements/declarations/index.js +2 -2
- package/dist/statements/declarations/index.js.map +1 -1
- package/dist/statements/declarations/interfaces.d.ts +7 -3
- package/dist/statements/declarations/interfaces.d.ts.map +1 -1
- package/dist/statements/declarations/interfaces.js +121 -107
- package/dist/statements/declarations/interfaces.js.map +1 -1
- package/dist/statements/declarations/type-aliases.d.ts +7 -3
- package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
- package/dist/statements/declarations/type-aliases.js +95 -79
- package/dist/statements/declarations/type-aliases.js.map +1 -1
- package/dist/statements/declarations/variables.d.ts +12 -2
- package/dist/statements/declarations/variables.d.ts.map +1 -1
- package/dist/statements/declarations/variables.js +535 -424
- package/dist/statements/declarations/variables.js.map +1 -1
- package/dist/statements/declarations.d.ts +1 -1
- package/dist/statements/declarations.d.ts.map +1 -1
- package/dist/statements/declarations.js +1 -1
- package/dist/statements/declarations.js.map +1 -1
- package/dist/statements/index.d.ts +3 -3
- package/dist/statements/index.d.ts.map +1 -1
- package/dist/statements/index.js +5 -5
- package/dist/statements/index.js.map +1 -1
- package/dist/type-emitter.d.ts +1 -1
- package/dist/type-emitter.d.ts.map +1 -1
- package/dist/type-emitter.js +1 -1
- package/dist/type-emitter.js.map +1 -1
- package/dist/types/arrays.d.ts +3 -2
- package/dist/types/arrays.d.ts.map +1 -1
- package/dist/types/arrays.js +7 -5
- package/dist/types/arrays.js.map +1 -1
- package/dist/types/dictionaries.d.ts +6 -3
- package/dist/types/dictionaries.d.ts.map +1 -1
- package/dist/types/dictionaries.js +22 -10
- package/dist/types/dictionaries.js.map +1 -1
- package/dist/types/emitter.d.ts +8 -2
- package/dist/types/emitter.d.ts.map +1 -1
- package/dist/types/emitter.js +23 -6
- package/dist/types/emitter.js.map +1 -1
- package/dist/types/functions.d.ts +3 -2
- package/dist/types/functions.d.ts.map +1 -1
- package/dist/types/functions.js +36 -13
- package/dist/types/functions.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/index.test.js +137 -0
- package/dist/types/index.test.js.map +1 -1
- package/dist/types/intersections.d.ts +3 -2
- package/dist/types/intersections.d.ts.map +1 -1
- package/dist/types/intersections.js +2 -2
- package/dist/types/intersections.js.map +1 -1
- package/dist/types/literals.d.ts +9 -2
- package/dist/types/literals.d.ts.map +1 -1
- package/dist/types/literals.js +11 -5
- package/dist/types/literals.js.map +1 -1
- package/dist/types/objects.d.ts +3 -2
- package/dist/types/objects.d.ts.map +1 -1
- package/dist/types/objects.js +1 -1
- package/dist/types/objects.js.map +1 -1
- package/dist/types/parameters.d.ts +6 -5
- package/dist/types/parameters.d.ts.map +1 -1
- package/dist/types/parameters.js +92 -31
- package/dist/types/parameters.js.map +1 -1
- package/dist/types/parameters.test.js +9 -4
- package/dist/types/parameters.test.js.map +1 -1
- package/dist/types/primitives.d.ts +5 -4
- package/dist/types/primitives.d.ts.map +1 -1
- package/dist/types/primitives.js +14 -13
- package/dist/types/primitives.js.map +1 -1
- package/dist/types/references.d.ts +3 -2
- package/dist/types/references.d.ts.map +1 -1
- package/dist/types/references.js +187 -104
- package/dist/types/references.js.map +1 -1
- package/dist/types/references.test.js +138 -0
- package/dist/types/references.test.js.map +1 -1
- package/dist/types/tuples.d.ts +3 -2
- package/dist/types/tuples.d.ts.map +1 -1
- package/dist/types/tuples.js +25 -11
- package/dist/types/tuples.js.map +1 -1
- package/dist/types/unions.d.ts +3 -2
- package/dist/types/unions.d.ts.map +1 -1
- package/dist/types/unions.js +36 -21
- package/dist/types/unions.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/dist/core/attributes.d.ts.map +0 -1
- package/dist/core/attributes.js +0 -141
- package/dist/core/attributes.js.map +0 -1
- package/dist/core/attributes.test.d.ts.map +0 -1
- package/dist/core/attributes.test.js.map +0 -1
- package/dist/core/boolean-context.d.ts +0 -42
- package/dist/core/boolean-context.d.ts.map +0 -1
- package/dist/core/boolean-context.js +0 -402
- package/dist/core/boolean-context.js.map +0 -1
- package/dist/core/boolean-context.test.d.ts.map +0 -1
- package/dist/core/boolean-context.test.js.map +0 -1
- package/dist/core/exports.d.ts.map +0 -1
- package/dist/core/exports.js +0 -28
- package/dist/core/exports.js.map +0 -1
- package/dist/core/imports.d.ts.map +0 -1
- package/dist/core/imports.js.map +0 -1
- package/dist/core/imports.test.d.ts.map +0 -1
- package/dist/core/imports.test.js.map +0 -1
- package/dist/core/local-names.d.ts.map +0 -1
- package/dist/core/local-names.js.map +0 -1
- package/dist/core/local-types.d.ts.map +0 -1
- package/dist/core/local-types.js.map +0 -1
- package/dist/core/module-emitter/assembly.d.ts +0 -24
- package/dist/core/module-emitter/assembly.d.ts.map +0 -1
- package/dist/core/module-emitter/assembly.js +0 -69
- package/dist/core/module-emitter/assembly.js.map +0 -1
- package/dist/core/module-emitter/header.d.ts.map +0 -1
- package/dist/core/module-emitter/header.js.map +0 -1
- package/dist/core/module-emitter/index.d.ts.map +0 -1
- package/dist/core/module-emitter/index.js.map +0 -1
- package/dist/core/module-emitter/namespace.d.ts +0 -14
- package/dist/core/module-emitter/namespace.d.ts.map +0 -1
- package/dist/core/module-emitter/namespace.js +0 -26
- package/dist/core/module-emitter/namespace.js.map +0 -1
- package/dist/core/module-emitter/orchestrator.d.ts.map +0 -1
- package/dist/core/module-emitter/orchestrator.js +0 -82
- package/dist/core/module-emitter/orchestrator.js.map +0 -1
- package/dist/core/module-emitter/separation.d.ts.map +0 -1
- package/dist/core/module-emitter/separation.js.map +0 -1
- package/dist/core/module-emitter/static-container.d.ts.map +0 -1
- package/dist/core/module-emitter/static-container.js +0 -139
- package/dist/core/module-emitter/static-container.js.map +0 -1
- package/dist/core/module-emitter.d.ts.map +0 -1
- package/dist/core/module-emitter.js.map +0 -1
- package/dist/core/module-map.d.ts.map +0 -1
- package/dist/core/module-map.js.map +0 -1
- package/dist/core/module-map.test.d.ts.map +0 -1
- package/dist/core/module-map.test.js.map +0 -1
- package/dist/core/naming-collisions.d.ts.map +0 -1
- package/dist/core/naming-collisions.js.map +0 -1
- package/dist/core/options.d.ts.map +0 -1
- package/dist/core/options.js.map +0 -1
- package/dist/core/type-alias-index.d.ts.map +0 -1
- package/dist/core/type-alias-index.js.map +0 -1
- package/dist/core/type-compatibility.d.ts.map +0 -1
- package/dist/core/type-compatibility.js.map +0 -1
- package/dist/core/type-member-index.d.ts.map +0 -1
- package/dist/core/type-member-index.js.map +0 -1
- package/dist/core/type-params.d.ts.map +0 -1
- package/dist/core/type-params.js.map +0 -1
- package/dist/core/type-resolution.d.ts.map +0 -1
- package/dist/core/type-resolution.js.map +0 -1
- package/dist/core/type-resolution.test.d.ts.map +0 -1
- package/dist/core/type-resolution.test.js.map +0 -1
- package/dist/core/unsafe.d.ts.map +0 -1
- package/dist/core/unsafe.js.map +0 -1
- /package/dist/core/{attributes.test.d.ts → format/attributes.test.d.ts} +0 -0
- /package/dist/core/{module-emitter → format/module-emitter}/index.d.ts +0 -0
- /package/dist/core/{module-emitter → format/module-emitter}/index.js +0 -0
- /package/dist/core/{module-emitter → format/module-emitter}/separation.d.ts +0 -0
- /package/dist/core/{module-emitter → format/module-emitter}/separation.js +0 -0
- /package/dist/core/{module-emitter.d.ts → format/module-emitter.d.ts} +0 -0
- /package/dist/core/{module-emitter.js → format/module-emitter.js} +0 -0
- /package/dist/core/{options.js → format/options.js} +0 -0
- /package/dist/core/{boolean-context.test.d.ts → semantic/boolean-context.test.d.ts} +0 -0
- /package/dist/core/{imports.test.d.ts → semantic/imports.test.d.ts} +0 -0
- /package/dist/core/{local-types.js → semantic/local-types.js} +0 -0
- /package/dist/core/{module-map.js → semantic/module-map.js} +0 -0
- /package/dist/core/{module-map.test.d.ts → semantic/module-map.test.d.ts} +0 -0
- /package/dist/core/{module-map.test.js → semantic/module-map.test.js} +0 -0
- /package/dist/core/{naming-collisions.d.ts → semantic/naming-collisions.d.ts} +0 -0
- /package/dist/core/{type-alias-index.js → semantic/type-alias-index.js} +0 -0
- /package/dist/core/{type-compatibility.d.ts → semantic/type-compatibility.d.ts} +0 -0
- /package/dist/core/{type-compatibility.js → semantic/type-compatibility.js} +0 -0
- /package/dist/core/{type-member-index.js → semantic/type-member-index.js} +0 -0
- /package/dist/core/{type-params.d.ts → semantic/type-params.d.ts} +0 -0
- /package/dist/core/{type-params.js → semantic/type-params.js} +0 -0
- /package/dist/core/{type-resolution.test.d.ts → semantic/type-resolution.test.d.ts} +0 -0
- /package/dist/core/{unsafe.d.ts → semantic/unsafe.d.ts} +0 -0
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Expression Emitter - IR expressions to C# code
|
|
3
3
|
* Main dispatcher - delegates to specialized modules
|
|
4
|
+
*
|
|
5
|
+
* Primary entry point is emitExpressionAst which returns [CSharpExpressionAst, EmitterContext].
|
|
4
6
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import { substituteTypeArgs } from "./core/type-resolution.js";
|
|
7
|
+
import { emitTypeAst } from "./type-emitter.js";
|
|
8
|
+
import { substituteTypeArgs } from "./core/semantic/type-resolution.js";
|
|
7
9
|
// Import expression emitters from specialized modules
|
|
8
10
|
import { emitLiteral } from "./expressions/literals.js";
|
|
9
11
|
import { emitIdentifier } from "./expressions/identifiers.js";
|
|
10
12
|
import { emitArray, emitObject } from "./expressions/collections.js";
|
|
11
13
|
import { emitMemberAccess } from "./expressions/access.js";
|
|
12
|
-
import { emitCall
|
|
14
|
+
import { emitCall } from "./expressions/calls/call-emitter.js";
|
|
15
|
+
import { emitNew } from "./expressions/calls/new-emitter.js";
|
|
13
16
|
import { emitBinary, emitLogical, emitUnary, emitUpdate, emitAssignment, emitConditional, } from "./expressions/operators.js";
|
|
14
17
|
import { emitFunctionExpression, emitArrowFunction, } from "./expressions/functions.js";
|
|
15
18
|
import { emitTemplateLiteral, emitSpread, emitAwait, } from "./expressions/other.js";
|
|
16
|
-
import { formatCastOperandText } from "./expressions/parentheses.js";
|
|
17
19
|
const getBareTypeParameterName = (type, context) => {
|
|
18
20
|
if (type.kind === "typeParameterType")
|
|
19
21
|
return type.name;
|
|
@@ -40,21 +42,28 @@ const getUnconstrainedNullishTypeParamName = (type, context) => {
|
|
|
40
42
|
const constraintKind = context.typeParamConstraints?.get(typeParamName) ?? "unconstrained";
|
|
41
43
|
return constraintKind === "unconstrained" ? typeParamName : undefined;
|
|
42
44
|
};
|
|
43
|
-
const
|
|
45
|
+
const maybeCastNullishTypeParamAst = (expr, ast, context, expectedType) => {
|
|
44
46
|
if (!expectedType)
|
|
45
|
-
return [
|
|
47
|
+
return [ast, context];
|
|
46
48
|
if (!expr.inferredType)
|
|
47
|
-
return [
|
|
49
|
+
return [ast, context];
|
|
48
50
|
const expectedTypeParam = getBareTypeParameterName(expectedType, context);
|
|
49
51
|
if (!expectedTypeParam)
|
|
50
|
-
return [
|
|
52
|
+
return [ast, context];
|
|
51
53
|
const unionTypeParam = getUnconstrainedNullishTypeParamName(expr.inferredType, context);
|
|
52
54
|
if (!unionTypeParam)
|
|
53
|
-
return [
|
|
55
|
+
return [ast, context];
|
|
54
56
|
if (unionTypeParam !== expectedTypeParam)
|
|
55
|
-
return [
|
|
56
|
-
const [
|
|
57
|
-
return [
|
|
57
|
+
return [ast, context];
|
|
58
|
+
const [typeAst, newContext] = emitTypeAst(expectedType, context);
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
kind: "castExpression",
|
|
62
|
+
type: typeAst,
|
|
63
|
+
expression: ast,
|
|
64
|
+
},
|
|
65
|
+
newContext,
|
|
66
|
+
];
|
|
58
67
|
};
|
|
59
68
|
const getNullableUnionBaseType = (type) => {
|
|
60
69
|
if (type.kind !== "unionType")
|
|
@@ -73,8 +82,6 @@ const isNonNullableValueType = (type) => {
|
|
|
73
82
|
type.name === "char");
|
|
74
83
|
}
|
|
75
84
|
if (type.kind === "referenceType") {
|
|
76
|
-
// C# primitive aliases represented as reference types via @tsonic/core.
|
|
77
|
-
// Keep this list strict — we only unwrap when `.Value` exists.
|
|
78
85
|
return (type.name === "sbyte" ||
|
|
79
86
|
type.name === "short" ||
|
|
80
87
|
type.name === "int" ||
|
|
@@ -103,89 +110,94 @@ const isSameTypeForNullableUnwrap = (base, expected) => {
|
|
|
103
110
|
return base.name === expected.name;
|
|
104
111
|
}
|
|
105
112
|
if (base.kind === "referenceType" && expected.kind === "referenceType") {
|
|
106
|
-
// This unwrap is only for Nullable<T> value types, so keep matching strict.
|
|
107
113
|
return (base.name === expected.name &&
|
|
108
114
|
(base.typeArguments?.length ?? 0) === 0 &&
|
|
109
115
|
(expected.typeArguments?.length ?? 0) === 0);
|
|
110
116
|
}
|
|
111
117
|
return false;
|
|
112
118
|
};
|
|
113
|
-
const
|
|
119
|
+
const maybeUnwrapNullableValueTypeAst = (expr, ast, context, expectedType) => {
|
|
114
120
|
if (!expectedType)
|
|
115
|
-
return [
|
|
121
|
+
return [ast, context];
|
|
116
122
|
if (!expr.inferredType)
|
|
117
|
-
return [
|
|
118
|
-
// Only unwrap direct nullable values.
|
|
119
|
-
// C# nullish coalescing already produces a non-nullable result when the
|
|
120
|
-
// fallback is non-nullable, so adding `.Value` is incorrect.
|
|
123
|
+
return [ast, context];
|
|
124
|
+
// Only unwrap direct nullable values.
|
|
121
125
|
if (expr.kind !== "identifier" && expr.kind !== "memberAccess") {
|
|
122
|
-
return [
|
|
126
|
+
return [ast, context];
|
|
123
127
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
(
|
|
128
|
-
|
|
128
|
+
const getMemberAccessNarrowKey = (m) => {
|
|
129
|
+
if (m.isComputed)
|
|
130
|
+
return undefined;
|
|
131
|
+
if (typeof m.property !== "string")
|
|
132
|
+
return undefined;
|
|
133
|
+
const obj = m.object;
|
|
134
|
+
if (obj.kind === "identifier")
|
|
135
|
+
return `${obj.name}.${m.property}`;
|
|
136
|
+
if (obj.kind === "memberAccess") {
|
|
137
|
+
const prefix = getMemberAccessNarrowKey(obj);
|
|
138
|
+
return prefix ? `${prefix}.${m.property}` : undefined;
|
|
139
|
+
}
|
|
140
|
+
return undefined;
|
|
141
|
+
};
|
|
142
|
+
if (context.narrowedBindings &&
|
|
143
|
+
((expr.kind === "identifier" && context.narrowedBindings.has(expr.name)) ||
|
|
144
|
+
(expr.kind === "memberAccess" &&
|
|
145
|
+
(() => {
|
|
146
|
+
const key = getMemberAccessNarrowKey(expr);
|
|
147
|
+
return key ? context.narrowedBindings.has(key) : false;
|
|
148
|
+
})()))) {
|
|
149
|
+
return [ast, context];
|
|
129
150
|
}
|
|
130
151
|
const nullableBase = getNullableUnionBaseType(expr.inferredType);
|
|
131
152
|
if (!nullableBase)
|
|
132
|
-
return [
|
|
133
|
-
// Only unwrap when the expected type is a non-nullable value type and
|
|
134
|
-
// the expression is a nullable union of that exact base type.
|
|
153
|
+
return [ast, context];
|
|
135
154
|
if (!isNonNullableValueType(expectedType))
|
|
136
|
-
return [
|
|
155
|
+
return [ast, context];
|
|
137
156
|
if (!isSameTypeForNullableUnwrap(nullableBase, expectedType)) {
|
|
138
|
-
return [
|
|
157
|
+
return [ast, context];
|
|
139
158
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
159
|
+
// Append .Value
|
|
160
|
+
return [
|
|
161
|
+
{
|
|
162
|
+
kind: "memberAccessExpression",
|
|
163
|
+
expression: ast,
|
|
164
|
+
memberName: "Value",
|
|
165
|
+
},
|
|
166
|
+
context,
|
|
167
|
+
];
|
|
143
168
|
};
|
|
144
169
|
/**
|
|
145
|
-
* Emit a numeric narrowing expression.
|
|
146
|
-
*
|
|
147
|
-
* If the inner expression is already proven to produce the target type,
|
|
148
|
-
* emit it directly without a cast. Otherwise, emit with an explicit cast.
|
|
149
|
-
*
|
|
150
|
-
* Key cases:
|
|
151
|
-
* - Literal 10 as int → "10" (no cast, no .0)
|
|
152
|
-
* - Variable x as int (where x is already int) → "x" (no cast)
|
|
153
|
-
* - Expression (x + y) as int (where result is int) → "x + y" (no cast)
|
|
170
|
+
* Emit a numeric narrowing expression as CSharpExpressionAst.
|
|
154
171
|
*/
|
|
155
172
|
const emitNumericNarrowing = (expr, context) => {
|
|
156
|
-
// If we have a proof that the inner expression already produces the target type,
|
|
157
|
-
// we don't need a cast - just emit the inner expression
|
|
158
173
|
if (expr.proof !== undefined) {
|
|
159
|
-
// For literals, pass the target type so they emit without decimal point
|
|
160
174
|
if (expr.proof.source.type === "literal") {
|
|
161
|
-
const [
|
|
162
|
-
|
|
163
|
-
return [innerCode, newContext];
|
|
175
|
+
const [innerAst, newContext] = emitExpressionAst(expr.expression, context, expr.inferredType);
|
|
176
|
+
return [innerAst, newContext];
|
|
164
177
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
178
|
+
const [innerAst, ctx1] = emitExpressionAst(expr.expression, context);
|
|
179
|
+
const [typeAst, ctx2] = emitTypeAst(expr.inferredType, ctx1);
|
|
180
|
+
return [
|
|
181
|
+
{
|
|
182
|
+
kind: "castExpression",
|
|
183
|
+
type: typeAst,
|
|
184
|
+
expression: innerAst,
|
|
185
|
+
},
|
|
186
|
+
ctx2,
|
|
187
|
+
];
|
|
172
188
|
}
|
|
173
|
-
// HARD GATE: No proof means the proof pass failed to catch an unprovable narrowing.
|
|
174
|
-
// This is an internal compiler error - the proof pass should have aborted compilation.
|
|
175
|
-
// We must NOT silently emit a cast, as that would be a soundness violation.
|
|
176
189
|
throw new Error(`Internal error: numericNarrowing without proof reached emitter. ` +
|
|
177
190
|
`Target: ${expr.targetKind}, Expression kind: ${expr.expression.kind}. ` +
|
|
178
191
|
`This indicates a bug in the numeric proof pass - it should have ` +
|
|
179
192
|
`emitted a diagnostic and aborted compilation.`);
|
|
180
193
|
};
|
|
181
194
|
/**
|
|
182
|
-
* Emit a type assertion expression.
|
|
195
|
+
* Emit a type assertion expression as CSharpExpressionAst.
|
|
183
196
|
*
|
|
184
197
|
* TypeScript `x as T` becomes C# `(T)x` (throwing cast).
|
|
185
|
-
* This is a checked cast that throws InvalidCastException on failure.
|
|
186
198
|
*/
|
|
187
199
|
const emitTypeAssertion = (expr, context) => {
|
|
188
|
-
const [
|
|
200
|
+
const [innerAst, ctx1] = emitExpressionAst(expr.expression, context, expr.targetType);
|
|
189
201
|
const resolveLocalTypeAliases = (target) => {
|
|
190
202
|
if (target.kind === "referenceType" && ctx1.localTypes) {
|
|
191
203
|
const typeInfo = ctx1.localTypes.get(target.name);
|
|
@@ -199,15 +211,7 @@ const emitTypeAssertion = (expr, context) => {
|
|
|
199
211
|
return target;
|
|
200
212
|
};
|
|
201
213
|
const shouldEraseTypeAssertion = (target) => {
|
|
202
|
-
// tsbindgen `ExtensionMethods<TShape>` is a TYPE-ONLY helper used to surface C#
|
|
203
|
-
// extension methods as instance-style members in TypeScript. It must never
|
|
204
|
-
// introduce runtime casts in emitted C# (notably for EF Core query precompilation).
|
|
205
|
-
//
|
|
206
|
-
// `x as ExtensionMethods<T>` (or a local alias that expands to it) is a no-op
|
|
207
|
-
// at runtime; preserve the original expression verbatim.
|
|
208
214
|
const resolved = resolveLocalTypeAliases(target);
|
|
209
|
-
// TypeScript `as unknown` is also type-only. Casting to `object` in C# is a
|
|
210
|
-
// semantic no-op and can break analyzers that expect idiomatic syntax.
|
|
211
215
|
if (resolved.kind === "unknownType") {
|
|
212
216
|
return true;
|
|
213
217
|
}
|
|
@@ -218,21 +222,15 @@ const emitTypeAssertion = (expr, context) => {
|
|
|
218
222
|
return true;
|
|
219
223
|
}
|
|
220
224
|
}
|
|
221
|
-
// ExtensionMethods_* aliases often normalize to an intersection that includes one
|
|
222
|
-
// or more `__Ext_*` constituents. Those `__Ext_*` types have no runtime
|
|
223
|
-
// representation, so the assertion must be erased.
|
|
224
225
|
if (resolved.kind === "intersectionType") {
|
|
225
226
|
return resolved.types.some((t) => t.kind === "referenceType" && t.name.startsWith("__Ext_"));
|
|
226
227
|
}
|
|
227
228
|
return false;
|
|
228
229
|
};
|
|
229
230
|
if (shouldEraseTypeAssertion(expr.targetType)) {
|
|
230
|
-
return [
|
|
231
|
+
return [innerAst, ctx1];
|
|
231
232
|
}
|
|
232
233
|
const resolveRuntimeCastTarget = (target, ctx) => {
|
|
233
|
-
// 1) Resolve local type aliases for runtime casting.
|
|
234
|
-
// TypeScript type aliases have no runtime representation in C#, except for
|
|
235
|
-
// object-literal aliases which we synthesize as classes (`Foo__Alias`).
|
|
236
234
|
if (target.kind === "referenceType" && ctx.localTypes) {
|
|
237
235
|
const typeInfo = ctx.localTypes.get(target.name);
|
|
238
236
|
if (typeInfo?.kind === "typeAlias") {
|
|
@@ -242,12 +240,9 @@ const emitTypeAssertion = (expr, context) => {
|
|
|
242
240
|
: typeInfo.type;
|
|
243
241
|
return resolveRuntimeCastTarget(substituted, ctx);
|
|
244
242
|
}
|
|
245
|
-
// objectType aliases are emitted as `Name__Alias` by emitReferenceType
|
|
246
243
|
return target;
|
|
247
244
|
}
|
|
248
245
|
}
|
|
249
|
-
// 2) Erase tsbindgen extension-method wrapper types at runtime:
|
|
250
|
-
// ExtensionMethods<TShape> is type-only; values are just TShape.
|
|
251
246
|
if (target.kind === "referenceType" && target.typeArguments?.length) {
|
|
252
247
|
const importBinding = ctx.importBindings?.get(target.name);
|
|
253
248
|
const clrName = importBinding?.kind === "type" ? importBinding.clrName : "";
|
|
@@ -257,11 +252,11 @@ const emitTypeAssertion = (expr, context) => {
|
|
|
257
252
|
return resolveRuntimeCastTarget(shape, ctx);
|
|
258
253
|
}
|
|
259
254
|
}
|
|
260
|
-
// 3) Intersection types have no C# cast target; cast to the first runtime-like constituent.
|
|
261
255
|
if (target.kind === "intersectionType") {
|
|
262
256
|
for (const part of target.types) {
|
|
263
257
|
const resolved = resolveRuntimeCastTarget(part, ctx);
|
|
264
|
-
if (resolved.kind !== "intersectionType" &&
|
|
258
|
+
if (resolved.kind !== "intersectionType" &&
|
|
259
|
+
resolved.kind !== "objectType") {
|
|
265
260
|
return resolved;
|
|
266
261
|
}
|
|
267
262
|
}
|
|
@@ -271,70 +266,86 @@ const emitTypeAssertion = (expr, context) => {
|
|
|
271
266
|
return target;
|
|
272
267
|
};
|
|
273
268
|
const runtimeTarget = resolveRuntimeCastTarget(expr.targetType, ctx1);
|
|
274
|
-
const [
|
|
275
|
-
|
|
276
|
-
|
|
269
|
+
const [typeAst, ctx2] = emitTypeAst(runtimeTarget, ctx1);
|
|
270
|
+
return [
|
|
271
|
+
{
|
|
272
|
+
kind: "castExpression",
|
|
273
|
+
type: typeAst,
|
|
274
|
+
expression: innerAst,
|
|
275
|
+
},
|
|
276
|
+
ctx2,
|
|
277
|
+
];
|
|
277
278
|
};
|
|
278
279
|
/**
|
|
279
|
-
* Emit an asinterface expression.
|
|
280
|
-
*
|
|
281
|
-
* `asinterface<T>(x)` is a compile-time-only intrinsic. It must never emit a runtime
|
|
282
|
-
* cast or function call. Emission relies on contextual typing in C# (typed locals,
|
|
283
|
-
* parameter types, return types) to apply the interface conversion.
|
|
280
|
+
* Emit an asinterface expression as CSharpExpressionAst.
|
|
284
281
|
*/
|
|
285
282
|
const emitAsInterface = (expr, context, expectedType) => {
|
|
286
283
|
const expected = expectedType ?? expr.targetType;
|
|
287
|
-
return
|
|
284
|
+
return emitExpressionAst(expr.expression, context, expected);
|
|
288
285
|
};
|
|
289
286
|
/**
|
|
290
|
-
* Emit a trycast expression.
|
|
287
|
+
* Emit a trycast expression as CSharpExpressionAst.
|
|
291
288
|
*
|
|
292
289
|
* TypeScript `trycast<T>(x)` becomes C# `x as T` (safe cast).
|
|
293
|
-
* This returns null if the cast fails instead of throwing.
|
|
294
290
|
*/
|
|
295
291
|
const emitTryCast = (expr, context) => {
|
|
296
|
-
const [
|
|
297
|
-
const [
|
|
298
|
-
|
|
299
|
-
|
|
292
|
+
const [innerAst, ctx1] = emitExpressionAst(expr.expression, context);
|
|
293
|
+
const [typeAst, ctx2] = emitTypeAst(expr.targetType, ctx1);
|
|
294
|
+
return [
|
|
295
|
+
{
|
|
296
|
+
kind: "asExpression",
|
|
297
|
+
expression: innerAst,
|
|
298
|
+
type: typeAst,
|
|
299
|
+
},
|
|
300
|
+
ctx2,
|
|
301
|
+
];
|
|
300
302
|
};
|
|
301
303
|
/**
|
|
302
|
-
* Emit a stackalloc expression.
|
|
303
|
-
*
|
|
304
|
-
* TypeScript `stackalloc<T>(n)` becomes C# `stackalloc T[n]`.
|
|
304
|
+
* Emit a stackalloc expression as CSharpExpressionAst.
|
|
305
305
|
*/
|
|
306
306
|
const emitStackAlloc = (expr, context) => {
|
|
307
|
-
const [
|
|
308
|
-
const [
|
|
307
|
+
const [elementTypeAst, ctx1] = emitTypeAst(expr.elementType, context);
|
|
308
|
+
const [sizeAst, ctx2] = emitExpressionAst(expr.size, ctx1, {
|
|
309
309
|
kind: "primitiveType",
|
|
310
310
|
name: "int",
|
|
311
311
|
});
|
|
312
|
-
return [
|
|
312
|
+
return [
|
|
313
|
+
{
|
|
314
|
+
kind: "stackAllocArrayCreationExpression",
|
|
315
|
+
elementType: elementTypeAst,
|
|
316
|
+
sizeExpression: sizeAst,
|
|
317
|
+
},
|
|
318
|
+
ctx2,
|
|
319
|
+
];
|
|
313
320
|
};
|
|
314
321
|
/**
|
|
315
|
-
* Emit a defaultof expression.
|
|
316
|
-
*
|
|
317
|
-
* TypeScript `defaultof<T>()` becomes C# `default(T)`.
|
|
322
|
+
* Emit a defaultof expression as CSharpExpressionAst.
|
|
318
323
|
*/
|
|
319
324
|
const emitDefaultOf = (expr, context) => {
|
|
320
|
-
const [
|
|
321
|
-
return [
|
|
325
|
+
const [typeAst, ctx1] = emitTypeAst(expr.targetType, context);
|
|
326
|
+
return [
|
|
327
|
+
{
|
|
328
|
+
kind: "defaultExpression",
|
|
329
|
+
type: typeAst,
|
|
330
|
+
},
|
|
331
|
+
ctx1,
|
|
332
|
+
];
|
|
322
333
|
};
|
|
323
334
|
/**
|
|
324
|
-
* Emit a C# expression from an IR expression
|
|
335
|
+
* Emit a C# expression AST from an IR expression.
|
|
336
|
+
* Primary entry point for expression emission.
|
|
337
|
+
*
|
|
325
338
|
* @param expr The IR expression to emit
|
|
326
339
|
* @param context The emitter context
|
|
327
|
-
* @param expectedType Optional expected type for contextual typing
|
|
340
|
+
* @param expectedType Optional expected type for contextual typing
|
|
328
341
|
*/
|
|
329
|
-
export const
|
|
330
|
-
const [
|
|
342
|
+
export const emitExpressionAst = (expr, context, expectedType) => {
|
|
343
|
+
const [ast, newContext] = (() => {
|
|
331
344
|
switch (expr.kind) {
|
|
332
345
|
case "literal":
|
|
333
|
-
// Pass expectedType for null → default conversion in generic contexts
|
|
334
|
-
// Numeric literals use raw lexeme (no contextual widening under new spec)
|
|
335
346
|
return emitLiteral(expr, context, expectedType);
|
|
336
347
|
case "identifier":
|
|
337
|
-
return emitIdentifier(expr, context);
|
|
348
|
+
return emitIdentifier(expr, context, expectedType);
|
|
338
349
|
case "array":
|
|
339
350
|
return emitArray(expr, context, expectedType);
|
|
340
351
|
case "object":
|
|
@@ -368,7 +379,10 @@ export const emitExpression = (expr, context, expectedType) => {
|
|
|
368
379
|
case "await":
|
|
369
380
|
return emitAwait(expr, context);
|
|
370
381
|
case "this":
|
|
371
|
-
return [
|
|
382
|
+
return [
|
|
383
|
+
{ kind: "identifierExpression", identifier: "this" },
|
|
384
|
+
context,
|
|
385
|
+
];
|
|
372
386
|
case "numericNarrowing":
|
|
373
387
|
return emitNumericNarrowing(expr, context);
|
|
374
388
|
case "asinterface":
|
|
@@ -385,9 +399,9 @@ export const emitExpression = (expr, context, expectedType) => {
|
|
|
385
399
|
throw new Error(`Unhandled IR expression kind: ${String(expr.kind)}`);
|
|
386
400
|
}
|
|
387
401
|
})();
|
|
388
|
-
const [
|
|
389
|
-
return
|
|
402
|
+
const [castedAst, castedContext] = maybeCastNullishTypeParamAst(expr, ast, newContext, expectedType);
|
|
403
|
+
return maybeUnwrapNullableValueTypeAst(expr, castedAst, castedContext, expectedType);
|
|
390
404
|
};
|
|
391
|
-
// Re-export commonly used functions
|
|
392
|
-
export {
|
|
405
|
+
// Re-export commonly used functions from barrel
|
|
406
|
+
export { generateSpecializedName } from "./expressions/identifiers.js";
|
|
393
407
|
//# sourceMappingURL=expression-emitter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-emitter.js","sourceRoot":"","sources":["../src/expression-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,sDAAsD;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,SAAS,GACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,wBAAwB,GAAG,CAC/B,IAAY,EACZ,OAAuB,EACH,EAAE;IACtB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACxD,IACE,IAAI,CAAC,IAAI,KAAK,eAAe;QAC7B,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,EACxD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,oCAAoC,GAAG,CAC3C,IAAY,EACZ,OAAuB,EACH,EAAE;IACtB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CACC,CAAC,CAAC,IAAI,KAAK,eAAe;QAC1B,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAC9C,CACJ,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,aAAa,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,cAAc,GAClB,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC;IACtE,OAAO,cAAc,KAAK,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,IAAkB,EAClB,QAAwB,EACxB,OAAuB,EACvB,YAAgC,EACE,EAAE;IACpC,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC,iBAAiB;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,oCAAoC,CACzD,IAAI,CAAC,YAAY,EACjB,OAAO,CACR,CAAC;IACF,IAAI,CAAC,cAAc;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,cAAc,KAAK,iBAAiB;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAErE,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAsB,EAAE;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CACC,CAAC,CAAC,IAAI,KAAK,eAAe;QAC1B,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAC9C,CACJ,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAW,EAAE;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,IAAI,KAAK,KAAK;YACnB,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,IAAI,CAAC,IAAI,KAAK,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,wEAAwE;QACxE,+DAA+D;QAC/D,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,IAAI,KAAK,KAAK;YACnB,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,IAAI,KAAK,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAW,EAAE;IAC9E,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACvE,4EAA4E;QAC5E,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YAC3B,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;YACvC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAC5C,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CACnC,IAAkB,EAClB,QAAwB,EACxB,OAAuB,EACvB,YAAgC,EACE,EAAE;IACpC,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,gFAAgF;IAChF,wEAAwE;IACxE,6DAA6D;IAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC/D,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,+DAA+D;IAC/D,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EACnD,CAAC;QACD,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjE,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9C,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACjE,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GAAG,CAC3B,IAAkC,EAClC,OAAuB,EACW,EAAE;IACpC,iFAAiF;IACjF,wDAAwD;IACxD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,wEAAwE;QACxE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,cAAc,CAC5C,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,8CAA8C;aACjE,CAAC;YACF,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,+EAA+E;QAC/E,4EAA4E;QAC5E,gFAAgF;QAChF,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,QAAQ,IAAI,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,oFAAoF;IACpF,uFAAuF;IACvF,4EAA4E;IAC5E,MAAM,IAAI,KAAK,CACb,kEAAkE;QAChE,WAAW,IAAI,CAAC,UAAU,sBAAsB,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI;QACxE,kEAAkE;QAClE,+CAA+C,CAClD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CACxB,IAA+B,EAC/B,OAAuB,EACW,EAAE;IACpC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpF,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAU,EAAE;QACzD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,WAAW,GACf,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;oBACrD,CAAC,CAAC,kBAAkB,CAChB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,cAAc,EACvB,MAAM,CAAC,aAAa,CACrB;oBACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpB,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAW,EAAE;QAC3D,gFAAgF;QAChF,2EAA2E;QAC3E,oFAAoF;QACpF,EAAE;QACF,8EAA8E;QAC9E,yDAAyD;QACzD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEjD,4EAA4E;QAC5E,uEAAuE;QACvE,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YACxE,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,aAAa,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,kFAAkF;QAClF,wEAAwE;QACxE,mDAAmD;QACnD,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CACjE,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,wBAAwB,GAAG,CAC/B,MAAc,EACd,GAAmB,EACX,EAAE;QACV,qDAAqD;QACrD,8EAA8E;QAC9E,2EAA2E;QAC3E,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACxC,MAAM,WAAW,GACf,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;wBACrD,CAAC,CAAC,kBAAkB,CAChB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,cAAc,EACvB,MAAM,CAAC,aAAa,CACrB;wBACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACpB,OAAO,wBAAwB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACpD,CAAC;gBACD,uEAAuE;gBACvE,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,oEAAoE;QACpE,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YACpE,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,aAAa,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,KAAK;oBAAE,OAAO,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,4FAA4F;QAC5F,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrD,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3E,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,QAAQ,IAAI,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CACtB,IAA6B,EAC7B,OAAuB,EACvB,YAAqB,EACa,EAAE;IACpC,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC;IACjD,OAAO,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,GAAG,CAClB,IAAyB,EACzB,OAAuB,EACW,EAAE;IACpC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,OAAO,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAAG,CACrB,IAA4B,EAC5B,OAAuB,EACW,EAAE;IACpC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;QACvD,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,eAAe,IAAI,QAAQ,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,aAAa,GAAG,CACpB,IAA2B,EAC3B,OAAuB,EACW,EAAE;IACpC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,QAAQ,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAkB,EAClB,OAAuB,EACvB,YAAqB,EACa,EAAE;IACpC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;QACnC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,SAAS;gBACZ,sEAAsE;gBACtE,0EAA0E;gBAC1E,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAElD,KAAK,YAAY;gBACf,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEvC,KAAK,OAAO;gBACV,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEhD,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEjD,KAAK,cAAc;gBACjB,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEzC,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEjC,KAAK,KAAK;gBACR,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEhC,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEjD,KAAK,SAAS;gBACZ,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpC,KAAK,OAAO;gBACV,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEhD,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnC,KAAK,YAAY;gBACf,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEvC,KAAK,aAAa;gBAChB,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEtD,KAAK,oBAAoB;gBACvB,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE/C,KAAK,eAAe;gBAClB,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1C,KAAK,iBAAiB;gBACpB,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE5C,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnC,KAAK,OAAO;gBACV,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAElC,KAAK,MAAM;gBACT,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YAErC,KAAK,kBAAkB;gBACrB,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE7C,KAAK,aAAa;gBAChB,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEtD,KAAK,eAAe;gBAClB,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1C,KAAK,SAAS;gBACZ,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpC,KAAK,YAAY;gBACf,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEvC,KAAK,WAAW;gBACd,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEtC;gBACE,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAE,IAA2B,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,yBAAyB,CAC3D,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,YAAY,CACb,CAAC;IACF,OAAO,4BAA4B,CACjC,IAAI,EACJ,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,+DAA+D;AAC/D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"expression-emitter.js","sourceRoot":"","sources":["../src/expression-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* Member access expression emitters
|
|
3
3
|
*/
|
|
4
4
|
import { IrExpression } from "@tsonic/frontend";
|
|
5
|
-
import { EmitterContext
|
|
5
|
+
import { EmitterContext } from "../types.js";
|
|
6
|
+
import type { CSharpExpressionAst } from "../core/format/backend-ast/types.js";
|
|
6
7
|
type MemberAccessUsage = "value" | "call";
|
|
7
8
|
/**
|
|
8
|
-
* Emit a member access expression
|
|
9
|
+
* Emit a member access expression as CSharpExpressionAst
|
|
9
10
|
*/
|
|
10
11
|
export declare const emitMemberAccess: (expr: Extract<IrExpression, {
|
|
11
12
|
kind: "memberAccess";
|
|
12
|
-
}>, context: EmitterContext, usage?: MemberAccessUsage) => [
|
|
13
|
+
}>, context: EmitterContext, usage?: MemberAccessUsage) => [CSharpExpressionAst, EmitterContext];
|
|
13
14
|
export {};
|
|
14
15
|
//# sourceMappingURL=access.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/expressions/access.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/expressions/access.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAe7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AA2B/E,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AA8P1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,EACrD,SAAS,cAAc,EACvB,QAAO,iBAA2B,KACjC,CAAC,mBAAmB,EAAE,cAAc,CAoVtC,CAAC"}
|