@tsonic/emitter 0.0.62 → 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} +1 -1
- 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/{module-emitter → format/module-emitter}/orchestrator.js +19 -19
- 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/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} +44 -108
- 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} +6 -77
- 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} +1 -1
- 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} +15 -25
- 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} +11 -19
- package/dist/core/semantic/type-resolution.test.js.map +1 -0
- package/dist/core/semantic/unsafe.d.ts.map +1 -0
- package/dist/core/semantic/unsafe.js.map +1 -0
- package/dist/emitter-types/core.d.ts +4 -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 +9 -8
- 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 +111 -117
- 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 +176 -102
- 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 -909
- 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 +301 -217
- 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 +76 -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 +143 -0
- 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 -949
- 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 +51 -36
- package/dist/expressions/other.js.map +1 -1
- package/dist/expressions/precedence.test.js +1 -1
- 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/integration.test.js +166 -1
- package/dist/integration.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 +31 -15
- 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 +191 -65
- 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 +105 -88
- 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 +4 -1
- 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 -1152
- 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 +66 -83
- 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 +16 -15
- 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 +119 -106
- 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 -82
- 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 +533 -425
- 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 +20 -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 +88 -29
- 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 +135 -111
- package/dist/types/references.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 -442
- 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.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
- /package/dist/core/{unsafe.js → semantic/unsafe.js} +0 -0
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Block and simple statement emitters
|
|
3
|
+
*
|
|
4
|
+
* Returns CSharpStatementAst nodes. Multi-statement lowerings (e.g., void-return
|
|
5
|
+
* splitting into `expr; return;`) return arrays of statements that the parent
|
|
6
|
+
* block flattens into its own statements array.
|
|
3
7
|
*/
|
|
4
8
|
import { IrStatement, IrExpression } from "@tsonic/frontend";
|
|
5
9
|
import { EmitterContext } from "../types.js";
|
|
10
|
+
import type { CSharpStatementAst, CSharpBlockStatementAst } from "../core/format/backend-ast/types.js";
|
|
6
11
|
/**
|
|
7
|
-
* Emit a block statement
|
|
12
|
+
* Emit a block statement as AST
|
|
8
13
|
*/
|
|
9
|
-
export declare const
|
|
14
|
+
export declare const emitBlockStatementAst: (stmt: Extract<IrStatement, {
|
|
10
15
|
kind: "blockStatement";
|
|
11
|
-
}>, context: EmitterContext) => [
|
|
16
|
+
}>, context: EmitterContext) => [CSharpBlockStatementAst, EmitterContext];
|
|
12
17
|
/**
|
|
13
|
-
* Emit a return statement
|
|
18
|
+
* Emit a return statement as AST.
|
|
14
19
|
* Uses context.returnType to pass expectedType for null → default conversion in generic contexts.
|
|
20
|
+
*
|
|
21
|
+
* Returns an array because void-return lowering may produce multiple statements
|
|
22
|
+
* (e.g., `expr; return;` for side-effectful expressions in void-returning functions).
|
|
15
23
|
*/
|
|
16
|
-
export declare const
|
|
24
|
+
export declare const emitReturnStatementAst: (stmt: Extract<IrStatement, {
|
|
17
25
|
kind: "returnStatement";
|
|
18
|
-
}>, context: EmitterContext) => [
|
|
26
|
+
}>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
|
|
19
27
|
/**
|
|
20
28
|
* Emit yield expression as C# yield return with exchange object pattern
|
|
21
|
-
* (
|
|
29
|
+
* (Handler for IrYieldExpression in unidirectional generators)
|
|
22
30
|
*
|
|
23
31
|
* TypeScript: yield value
|
|
24
32
|
* C#:
|
|
@@ -30,9 +38,9 @@ export declare const emitReturnStatement: (stmt: Extract<IrStatement, {
|
|
|
30
38
|
* foreach (var item in OtherGenerator())
|
|
31
39
|
* yield return item;
|
|
32
40
|
*/
|
|
33
|
-
export declare const
|
|
41
|
+
export declare const emitYieldExpressionAst: (expr: Extract<IrExpression, {
|
|
34
42
|
kind: "yield";
|
|
35
|
-
}>, context: EmitterContext) => [
|
|
43
|
+
}>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
|
|
36
44
|
/**
|
|
37
45
|
* Emit IrYieldStatement (lowered form from yield-lowering pass)
|
|
38
46
|
* Handles bidirectional communication: const x = yield value;
|
|
@@ -48,15 +56,15 @@ export declare const emitYieldExpression: (expr: Extract<IrExpression, {
|
|
|
48
56
|
* exchange.Output = value;
|
|
49
57
|
* yield return exchange;
|
|
50
58
|
*/
|
|
51
|
-
export declare const
|
|
59
|
+
export declare const emitYieldStatementAst: (stmt: Extract<IrStatement, {
|
|
52
60
|
kind: "yieldStatement";
|
|
53
|
-
}>, context: EmitterContext) => [
|
|
61
|
+
}>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
|
|
54
62
|
/**
|
|
55
|
-
* Emit an expression statement
|
|
63
|
+
* Emit an expression statement as AST
|
|
56
64
|
*/
|
|
57
|
-
export declare const
|
|
65
|
+
export declare const emitExpressionStatementAst: (stmt: Extract<IrStatement, {
|
|
58
66
|
kind: "expressionStatement";
|
|
59
|
-
}>, context: EmitterContext) => [
|
|
67
|
+
}>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
|
|
60
68
|
/**
|
|
61
69
|
* Emit IrGeneratorReturnStatement (lowered form from yield-lowering pass)
|
|
62
70
|
* Handles return statements in generators with TReturn.
|
|
@@ -73,7 +81,7 @@ export declare const emitExpressionStatement: (stmt: Extract<IrStatement, {
|
|
|
73
81
|
* The __returnValue variable is declared in the enclosing function emission.
|
|
74
82
|
* The wrapper's _getReturnValue closure captures this value when iteration completes.
|
|
75
83
|
*/
|
|
76
|
-
export declare const
|
|
84
|
+
export declare const emitGeneratorReturnStatementAst: (stmt: Extract<IrStatement, {
|
|
77
85
|
kind: "generatorReturnStatement";
|
|
78
|
-
}>, context: EmitterContext) => [
|
|
86
|
+
}>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
|
|
79
87
|
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,uBAAuB,EAAE,cAAc,CAmB1C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CAsEhD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA+EhD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CAoGhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA8ChD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,GAC1C,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,CAAC,EAChE,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA2BhD,CAAC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Block and simple statement emitters
|
|
3
|
+
*
|
|
4
|
+
* Returns CSharpStatementAst nodes. Multi-statement lowerings (e.g., void-return
|
|
5
|
+
* splitting into `expr; return;`) return arrays of statements that the parent
|
|
6
|
+
* block flattens into its own statements array.
|
|
3
7
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { allocateLocalName } from "../core/local-names.js";
|
|
8
|
+
import { emitExpressionAst } from "../expression-emitter.js";
|
|
9
|
+
import { emitStatementAst } from "../statement-emitter.js";
|
|
10
|
+
import { lowerPatternAst } from "../patterns.js";
|
|
11
|
+
import { allocateLocalName } from "../core/format/local-names.js";
|
|
9
12
|
/**
|
|
10
|
-
* Emit a block statement
|
|
13
|
+
* Emit a block statement as AST
|
|
11
14
|
*/
|
|
12
|
-
export const
|
|
13
|
-
const ind = getIndent(context);
|
|
15
|
+
export const emitBlockStatementAst = (stmt, context) => {
|
|
14
16
|
const outerNameMap = context.localNameMap;
|
|
15
17
|
// New lexical scope for locals (prevents C# CS0136 shadowing errors).
|
|
16
18
|
let currentContext = {
|
|
@@ -19,22 +21,23 @@ export const emitBlockStatement = (stmt, context) => {
|
|
|
19
21
|
};
|
|
20
22
|
const statements = [];
|
|
21
23
|
for (const s of stmt.statements) {
|
|
22
|
-
const [
|
|
23
|
-
statements.push(
|
|
24
|
+
const [stmts, newContext] = emitStatementAst(s, currentContext);
|
|
25
|
+
statements.push(...stmts);
|
|
24
26
|
currentContext = newContext;
|
|
25
27
|
}
|
|
26
|
-
const bodyCode = statements.join("\n");
|
|
27
28
|
return [
|
|
28
|
-
|
|
29
|
+
{ kind: "blockStatement", statements },
|
|
29
30
|
{ ...currentContext, localNameMap: outerNameMap },
|
|
30
31
|
];
|
|
31
32
|
};
|
|
32
33
|
/**
|
|
33
|
-
* Emit a return statement
|
|
34
|
+
* Emit a return statement as AST.
|
|
34
35
|
* Uses context.returnType to pass expectedType for null → default conversion in generic contexts.
|
|
36
|
+
*
|
|
37
|
+
* Returns an array because void-return lowering may produce multiple statements
|
|
38
|
+
* (e.g., `expr; return;` for side-effectful expressions in void-returning functions).
|
|
35
39
|
*/
|
|
36
|
-
export const
|
|
37
|
-
const ind = getIndent(context);
|
|
40
|
+
export const emitReturnStatementAst = (stmt, context) => {
|
|
38
41
|
if (stmt.expression) {
|
|
39
42
|
// In TypeScript, `return expr;` is permitted in a `void`-returning function and
|
|
40
43
|
// simply returns `undefined` after evaluating `expr` for side effects.
|
|
@@ -51,28 +54,45 @@ export const emitReturnStatement = (stmt, context) => {
|
|
|
51
54
|
(expr.value === undefined || expr.value === null)) ||
|
|
52
55
|
(expr.kind === "identifier" &&
|
|
53
56
|
(expr.name === "undefined" || expr.name === "null"));
|
|
54
|
-
const [
|
|
57
|
+
const [exprAst, newContext] = emitExpressionAst(expr, context);
|
|
55
58
|
if (isNoopExpr) {
|
|
56
|
-
return [
|
|
59
|
+
return [[{ kind: "returnStatement" }], newContext];
|
|
57
60
|
}
|
|
61
|
+
const returnStmt = { kind: "returnStatement" };
|
|
58
62
|
if (expr.kind === "call" ||
|
|
59
63
|
expr.kind === "new" ||
|
|
60
64
|
expr.kind === "assignment" ||
|
|
61
65
|
expr.kind === "update" ||
|
|
62
66
|
expr.kind === "await") {
|
|
63
|
-
return [
|
|
67
|
+
return [
|
|
68
|
+
[{ kind: "expressionStatement", expression: exprAst }, returnStmt],
|
|
69
|
+
newContext,
|
|
70
|
+
];
|
|
64
71
|
}
|
|
65
|
-
|
|
72
|
+
// Use discard assignment for expressions that aren't valid C# statement-expressions
|
|
73
|
+
const discardAssign = {
|
|
74
|
+
kind: "assignmentExpression",
|
|
75
|
+
operatorToken: "=",
|
|
76
|
+
left: { kind: "identifierExpression", identifier: "_" },
|
|
77
|
+
right: exprAst,
|
|
78
|
+
};
|
|
79
|
+
return [
|
|
80
|
+
[
|
|
81
|
+
{ kind: "expressionStatement", expression: discardAssign },
|
|
82
|
+
returnStmt,
|
|
83
|
+
],
|
|
84
|
+
newContext,
|
|
85
|
+
];
|
|
66
86
|
}
|
|
67
87
|
// Pass returnType as expectedType for null → default conversion in generic contexts
|
|
68
|
-
const [
|
|
69
|
-
return [
|
|
88
|
+
const [exprAst, newContext] = emitExpressionAst(stmt.expression, context, context.returnType);
|
|
89
|
+
return [[{ kind: "returnStatement", expression: exprAst }], newContext];
|
|
70
90
|
}
|
|
71
|
-
return [
|
|
91
|
+
return [[{ kind: "returnStatement" }], context];
|
|
72
92
|
};
|
|
73
93
|
/**
|
|
74
94
|
* Emit yield expression as C# yield return with exchange object pattern
|
|
75
|
-
* (
|
|
95
|
+
* (Handler for IrYieldExpression in unidirectional generators)
|
|
76
96
|
*
|
|
77
97
|
* TypeScript: yield value
|
|
78
98
|
* C#:
|
|
@@ -84,41 +104,79 @@ export const emitReturnStatement = (stmt, context) => {
|
|
|
84
104
|
* foreach (var item in OtherGenerator())
|
|
85
105
|
* yield return item;
|
|
86
106
|
*/
|
|
87
|
-
export const
|
|
88
|
-
const ind = getIndent(context);
|
|
107
|
+
export const emitYieldExpressionAst = (expr, context) => {
|
|
89
108
|
let currentContext = context;
|
|
90
109
|
const parts = [];
|
|
91
110
|
if (expr.delegate) {
|
|
92
111
|
// yield* delegation
|
|
93
112
|
if (expr.expression) {
|
|
94
|
-
const [
|
|
113
|
+
const [delegateAst, newContext] = emitExpressionAst(expr.expression, currentContext);
|
|
95
114
|
currentContext = newContext;
|
|
96
115
|
// Use await foreach for async generators, foreach for sync
|
|
97
|
-
const foreachKeyword = currentContext.isAsync
|
|
98
|
-
? "await foreach"
|
|
99
|
-
: "foreach";
|
|
100
116
|
const itemAlloc = allocateLocalName("item", currentContext);
|
|
101
117
|
currentContext = itemAlloc.context;
|
|
102
|
-
parts.push(
|
|
103
|
-
|
|
118
|
+
parts.push({
|
|
119
|
+
kind: "foreachStatement",
|
|
120
|
+
isAwait: currentContext.isAsync,
|
|
121
|
+
type: { kind: "varType" },
|
|
122
|
+
identifier: itemAlloc.emittedName,
|
|
123
|
+
expression: delegateAst,
|
|
124
|
+
body: {
|
|
125
|
+
kind: "yieldStatement",
|
|
126
|
+
isBreak: false,
|
|
127
|
+
expression: {
|
|
128
|
+
kind: "identifierExpression",
|
|
129
|
+
identifier: itemAlloc.emittedName,
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
});
|
|
104
133
|
}
|
|
105
134
|
}
|
|
106
135
|
else {
|
|
107
136
|
// Regular yield
|
|
108
137
|
if (expr.expression) {
|
|
109
|
-
const [
|
|
138
|
+
const [valueAst, newContext] = emitExpressionAst(expr.expression, currentContext);
|
|
110
139
|
currentContext = newContext;
|
|
111
140
|
const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
|
|
112
|
-
parts.push(
|
|
113
|
-
|
|
141
|
+
parts.push({
|
|
142
|
+
kind: "expressionStatement",
|
|
143
|
+
expression: {
|
|
144
|
+
kind: "assignmentExpression",
|
|
145
|
+
operatorToken: "=",
|
|
146
|
+
left: {
|
|
147
|
+
kind: "memberAccessExpression",
|
|
148
|
+
expression: {
|
|
149
|
+
kind: "identifierExpression",
|
|
150
|
+
identifier: exchangeVar,
|
|
151
|
+
},
|
|
152
|
+
memberName: "Output",
|
|
153
|
+
},
|
|
154
|
+
right: valueAst,
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
parts.push({
|
|
158
|
+
kind: "yieldStatement",
|
|
159
|
+
isBreak: false,
|
|
160
|
+
expression: {
|
|
161
|
+
kind: "identifierExpression",
|
|
162
|
+
identifier: exchangeVar,
|
|
163
|
+
},
|
|
164
|
+
});
|
|
114
165
|
}
|
|
115
166
|
else {
|
|
116
167
|
// Bare yield (no value)
|
|
117
168
|
const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
|
|
118
|
-
parts.push(
|
|
169
|
+
parts.push({
|
|
170
|
+
kind: "yieldStatement",
|
|
171
|
+
isBreak: false,
|
|
172
|
+
expression: {
|
|
173
|
+
kind: "identifierExpression",
|
|
174
|
+
identifier: exchangeVar,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
119
177
|
}
|
|
120
178
|
}
|
|
121
|
-
return [parts
|
|
179
|
+
return [parts, currentContext];
|
|
122
180
|
};
|
|
123
181
|
/**
|
|
124
182
|
* Emit IrYieldStatement (lowered form from yield-lowering pass)
|
|
@@ -135,54 +193,103 @@ export const emitYieldExpression = (expr, context) => {
|
|
|
135
193
|
* exchange.Output = value;
|
|
136
194
|
* yield return exchange;
|
|
137
195
|
*/
|
|
138
|
-
export const
|
|
139
|
-
const ind = getIndent(context);
|
|
196
|
+
export const emitYieldStatementAst = (stmt, context) => {
|
|
140
197
|
let currentContext = context;
|
|
141
198
|
const parts = [];
|
|
142
199
|
if (stmt.delegate) {
|
|
143
200
|
// yield* delegation - emit foreach pattern
|
|
144
201
|
if (stmt.output) {
|
|
145
|
-
const [
|
|
202
|
+
const [delegateAst, newContext] = emitExpressionAst(stmt.output, currentContext);
|
|
146
203
|
currentContext = newContext;
|
|
147
204
|
// Use await foreach for async generators, foreach for sync
|
|
148
|
-
const foreachKeyword = currentContext.isAsync
|
|
149
|
-
? "await foreach"
|
|
150
|
-
: "foreach";
|
|
151
205
|
const itemAlloc = allocateLocalName("item", currentContext);
|
|
152
206
|
currentContext = itemAlloc.context;
|
|
153
|
-
parts.push(
|
|
154
|
-
|
|
207
|
+
parts.push({
|
|
208
|
+
kind: "foreachStatement",
|
|
209
|
+
isAwait: currentContext.isAsync,
|
|
210
|
+
type: { kind: "varType" },
|
|
211
|
+
identifier: itemAlloc.emittedName,
|
|
212
|
+
expression: delegateAst,
|
|
213
|
+
body: {
|
|
214
|
+
kind: "yieldStatement",
|
|
215
|
+
isBreak: false,
|
|
216
|
+
expression: {
|
|
217
|
+
kind: "identifierExpression",
|
|
218
|
+
identifier: itemAlloc.emittedName,
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
});
|
|
155
222
|
}
|
|
156
223
|
}
|
|
157
224
|
else {
|
|
158
225
|
// Regular yield with optional bidirectional support
|
|
159
226
|
if (stmt.output) {
|
|
160
|
-
const [
|
|
227
|
+
const [valueAst, newContext] = emitExpressionAst(stmt.output, currentContext);
|
|
161
228
|
currentContext = newContext;
|
|
162
229
|
const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
|
|
163
|
-
parts.push(
|
|
230
|
+
parts.push({
|
|
231
|
+
kind: "expressionStatement",
|
|
232
|
+
expression: {
|
|
233
|
+
kind: "assignmentExpression",
|
|
234
|
+
operatorToken: "=",
|
|
235
|
+
left: {
|
|
236
|
+
kind: "memberAccessExpression",
|
|
237
|
+
expression: {
|
|
238
|
+
kind: "identifierExpression",
|
|
239
|
+
identifier: exchangeVar,
|
|
240
|
+
},
|
|
241
|
+
memberName: "Output",
|
|
242
|
+
},
|
|
243
|
+
right: valueAst,
|
|
244
|
+
},
|
|
245
|
+
});
|
|
164
246
|
}
|
|
165
247
|
const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
|
|
166
|
-
parts.push(
|
|
248
|
+
parts.push({
|
|
249
|
+
kind: "yieldStatement",
|
|
250
|
+
isBreak: false,
|
|
251
|
+
expression: {
|
|
252
|
+
kind: "identifierExpression",
|
|
253
|
+
identifier: exchangeVar,
|
|
254
|
+
},
|
|
255
|
+
});
|
|
167
256
|
// Handle receiveTarget for bidirectional communication
|
|
168
257
|
if (stmt.receiveTarget) {
|
|
169
|
-
const
|
|
258
|
+
const inputExpr = {
|
|
259
|
+
kind: "parenthesizedExpression",
|
|
260
|
+
expression: {
|
|
261
|
+
kind: "binaryExpression",
|
|
262
|
+
operatorToken: "??",
|
|
263
|
+
left: {
|
|
264
|
+
kind: "memberAccessExpression",
|
|
265
|
+
expression: {
|
|
266
|
+
kind: "identifierExpression",
|
|
267
|
+
identifier: exchangeVar,
|
|
268
|
+
},
|
|
269
|
+
memberName: "Input",
|
|
270
|
+
},
|
|
271
|
+
right: {
|
|
272
|
+
kind: "suppressNullableWarningExpression",
|
|
273
|
+
expression: { kind: "defaultExpression" },
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
};
|
|
277
|
+
const lowered = lowerPatternAst(stmt.receiveTarget, inputExpr, stmt.receivedType, currentContext);
|
|
170
278
|
parts.push(...lowered.statements);
|
|
171
279
|
currentContext = lowered.context;
|
|
172
280
|
}
|
|
173
281
|
}
|
|
174
|
-
return [parts
|
|
282
|
+
return [parts, currentContext];
|
|
175
283
|
};
|
|
176
284
|
/**
|
|
177
|
-
* Emit an expression statement
|
|
285
|
+
* Emit an expression statement as AST
|
|
178
286
|
*/
|
|
179
|
-
export const
|
|
180
|
-
const ind = getIndent(context);
|
|
287
|
+
export const emitExpressionStatementAst = (stmt, context) => {
|
|
181
288
|
// Special handling for yield expressions in generators
|
|
182
289
|
// Note: After yield-lowering pass, generators will have IrYieldStatement nodes instead
|
|
183
|
-
//
|
|
290
|
+
// Handles unprocessed IR (before yield-lowering pass)
|
|
184
291
|
if (stmt.expression.kind === "yield") {
|
|
185
|
-
return
|
|
292
|
+
return emitYieldExpressionAst(stmt.expression, context);
|
|
186
293
|
}
|
|
187
294
|
// TypeScript `void expr;` evaluates `expr` and discards the result.
|
|
188
295
|
//
|
|
@@ -191,7 +298,7 @@ export const emitExpressionStatement = (stmt, context) => {
|
|
|
191
298
|
// without introducing runtime helpers.
|
|
192
299
|
if (stmt.expression.kind === "unary" && stmt.expression.operator === "void") {
|
|
193
300
|
const operand = stmt.expression.expression;
|
|
194
|
-
const [
|
|
301
|
+
const [operandAst, newContext] = emitExpressionAst(operand, context);
|
|
195
302
|
// If the operand is already a valid statement-expression (call/new/assignment/
|
|
196
303
|
// update/await), emit it directly. Otherwise, use a discard assignment.
|
|
197
304
|
if (operand.kind === "call" ||
|
|
@@ -199,12 +306,24 @@ export const emitExpressionStatement = (stmt, context) => {
|
|
|
199
306
|
operand.kind === "assignment" ||
|
|
200
307
|
operand.kind === "update" ||
|
|
201
308
|
operand.kind === "await") {
|
|
202
|
-
return [
|
|
309
|
+
return [
|
|
310
|
+
[{ kind: "expressionStatement", expression: operandAst }],
|
|
311
|
+
newContext,
|
|
312
|
+
];
|
|
203
313
|
}
|
|
204
|
-
|
|
314
|
+
const discardAssign = {
|
|
315
|
+
kind: "assignmentExpression",
|
|
316
|
+
operatorToken: "=",
|
|
317
|
+
left: { kind: "identifierExpression", identifier: "_" },
|
|
318
|
+
right: operandAst,
|
|
319
|
+
};
|
|
320
|
+
return [
|
|
321
|
+
[{ kind: "expressionStatement", expression: discardAssign }],
|
|
322
|
+
newContext,
|
|
323
|
+
];
|
|
205
324
|
}
|
|
206
|
-
const [
|
|
207
|
-
return [
|
|
325
|
+
const [exprAst, newContext] = emitExpressionAst(stmt.expression, context);
|
|
326
|
+
return [[{ kind: "expressionStatement", expression: exprAst }], newContext];
|
|
208
327
|
};
|
|
209
328
|
/**
|
|
210
329
|
* Emit IrGeneratorReturnStatement (lowered form from yield-lowering pass)
|
|
@@ -222,19 +341,26 @@ export const emitExpressionStatement = (stmt, context) => {
|
|
|
222
341
|
* The __returnValue variable is declared in the enclosing function emission.
|
|
223
342
|
* The wrapper's _getReturnValue closure captures this value when iteration completes.
|
|
224
343
|
*/
|
|
225
|
-
export const
|
|
226
|
-
const ind = getIndent(context);
|
|
344
|
+
export const emitGeneratorReturnStatementAst = (stmt, context) => {
|
|
227
345
|
let currentContext = context;
|
|
228
346
|
const returnVar = currentContext.generatorReturnValueVar ?? "__returnValue";
|
|
229
347
|
const parts = [];
|
|
230
348
|
if (stmt.expression) {
|
|
231
349
|
// Capture the return value in __returnValue before terminating
|
|
232
|
-
const [
|
|
350
|
+
const [valueAst, newContext] = emitExpressionAst(stmt.expression, currentContext);
|
|
233
351
|
currentContext = newContext;
|
|
234
|
-
parts.push(
|
|
352
|
+
parts.push({
|
|
353
|
+
kind: "expressionStatement",
|
|
354
|
+
expression: {
|
|
355
|
+
kind: "assignmentExpression",
|
|
356
|
+
operatorToken: "=",
|
|
357
|
+
left: { kind: "identifierExpression", identifier: returnVar },
|
|
358
|
+
right: valueAst,
|
|
359
|
+
},
|
|
360
|
+
});
|
|
235
361
|
}
|
|
236
362
|
// Terminate the iterator
|
|
237
|
-
parts.push(
|
|
238
|
-
return [parts
|
|
363
|
+
parts.push({ kind: "yieldStatement", isBreak: true });
|
|
364
|
+
return [parts, currentContext];
|
|
239
365
|
};
|
|
240
366
|
//# sourceMappingURL=blocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Class-related helpers - Public API
|
|
3
3
|
*/
|
|
4
4
|
export { capitalize } from "./helpers.js";
|
|
5
|
-
export { emitParameters, emitParametersWithDestructuring,
|
|
5
|
+
export { emitParameters, emitParametersWithDestructuring, generateParameterDestructuringAst, type ParameterEmissionResult, } from "./parameters.js";
|
|
6
6
|
export { emitClassMember } from "./members.js";
|
|
7
7
|
export { emitInterfaceMemberAsProperty } from "./properties.js";
|
|
8
8
|
export { extractInlineObjectTypes, emitExtractedType, type ExtractedType, } from "./inline-types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,iCAAiC,EACjC,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Class-related helpers - Public API
|
|
3
3
|
*/
|
|
4
4
|
export { capitalize } from "./helpers.js";
|
|
5
|
-
export { emitParameters, emitParametersWithDestructuring,
|
|
5
|
+
export { emitParameters, emitParametersWithDestructuring, generateParameterDestructuringAst, } from "./parameters.js";
|
|
6
6
|
export { emitClassMember } from "./members.js";
|
|
7
7
|
export { emitInterfaceMemberAsProperty } from "./properties.js";
|
|
8
8
|
export { extractInlineObjectTypes, emitExtractedType, } from "./inline-types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,iCAAiC,GAElC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAElB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Inline object type extraction and emission
|
|
2
|
+
* Inline object type extraction and emission — returns CSharpTypeDeclarationAst
|
|
3
3
|
*/
|
|
4
4
|
import { IrInterfaceMember } from "@tsonic/frontend";
|
|
5
5
|
import { EmitterContext } from "../../types.js";
|
|
6
|
+
import type { CSharpTypeDeclarationAst } from "../../core/format/backend-ast/types.js";
|
|
6
7
|
/**
|
|
7
8
|
* Extracted inline object type
|
|
8
9
|
*/
|
|
@@ -15,7 +16,7 @@ export type ExtractedType = {
|
|
|
15
16
|
*/
|
|
16
17
|
export declare const extractInlineObjectTypes: (members: readonly IrInterfaceMember[], context: EmitterContext) => readonly ExtractedType[];
|
|
17
18
|
/**
|
|
18
|
-
* Emit an extracted inline object type as
|
|
19
|
+
* Emit an extracted inline object type as CSharpClassDeclarationAst
|
|
19
20
|
*/
|
|
20
|
-
export declare const emitExtractedType: (extracted: ExtractedType, context: EmitterContext) => [
|
|
21
|
+
export declare const emitExtractedType: (extracted: ExtractedType, context: EmitterContext) => [CSharpTypeDeclarationAst, EmitterContext];
|
|
21
22
|
//# sourceMappingURL=inline-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-types.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/inline-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"inline-types.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/inline-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,SAAS,iBAAiB,EAAE,EACrC,SAAS,cAAc,KACtB,SAAS,aAAa,EAkBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,aAAa,EACxB,SAAS,cAAc,KACtB,CAAC,wBAAwB,EAAE,cAAc,CAwC3C,CAAC"}
|