@geastack/compiler 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +149 -0
- package/dist/cli-analyze.d.ts +1 -0
- package/dist/cli-analyze.js +61 -0
- package/dist/cli-coverage.d.ts +1 -0
- package/dist/cli-coverage.js +329 -0
- package/dist/cli-emit.d.ts +10 -0
- package/dist/cli-emit.js +398 -0
- package/dist/cli-module-graph.d.ts +18 -0
- package/dist/cli-module-graph.js +123 -0
- package/dist/cli-package-source.d.ts +5 -0
- package/dist/cli-package-source.js +116 -0
- package/dist/cli-project.d.ts +2 -0
- package/dist/cli-project.js +60 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +199 -0
- package/dist/compiler.d.ts +228 -0
- package/dist/compiler.js +1029 -0
- package/dist/conversion/algebra.d.ts +218 -0
- package/dist/conversion/algebra.js +155 -0
- package/dist/conversion/build.d.ts +67 -0
- package/dist/conversion/build.js +1378 -0
- package/dist/conversion/derive.d.ts +37 -0
- package/dist/conversion/derive.js +260 -0
- package/dist/conversion/graph-validation.d.ts +8 -0
- package/dist/conversion/graph-validation.js +97 -0
- package/dist/conversion/native-callable-adapter.d.ts +13 -0
- package/dist/conversion/native-callable-adapter.js +53 -0
- package/dist/conversion/native-class-reference.d.ts +12 -0
- package/dist/conversion/native-class-reference.js +39 -0
- package/dist/conversion/native-payload-transport.d.ts +25 -0
- package/dist/conversion/native-payload-transport.js +33 -0
- package/dist/conversion/native-selection.d.ts +49 -0
- package/dist/conversion/native-selection.js +135 -0
- package/dist/conversion/native-sum.d.ts +42 -0
- package/dist/conversion/native-sum.js +115 -0
- package/dist/conversion/nodes.d.ts +55 -0
- package/dist/conversion/nodes.js +91 -0
- package/dist/conversion/operand-view.d.ts +14 -0
- package/dist/conversion/operand-view.js +20 -0
- package/dist/conversion/record-view.d.ts +157 -0
- package/dist/conversion/record-view.js +273 -0
- package/dist/conversion/registry.d.ts +217 -0
- package/dist/conversion/registry.js +1 -0
- package/dist/diagnostics/model.d.ts +76 -0
- package/dist/diagnostics/model.js +60 -0
- package/dist/diagnostics/sweep.d.ts +31 -0
- package/dist/diagnostics/sweep.js +112 -0
- package/dist/identity/ids.d.ts +179 -0
- package/dist/identity/ids.js +212 -0
- package/dist/ir/absent-class-arm.d.ts +48 -0
- package/dist/ir/absent-class-arm.js +157 -0
- package/dist/ir/borrow-effects.d.ts +23 -0
- package/dist/ir/borrow-effects.js +151 -0
- package/dist/ir/borrowed-call-arguments.d.ts +40 -0
- package/dist/ir/borrowed-call-arguments.js +117 -0
- package/dist/ir/build.d.ts +168 -0
- package/dist/ir/build.js +459 -0
- package/dist/ir/call-dispatch.d.ts +38 -0
- package/dist/ir/call-dispatch.js +502 -0
- package/dist/ir/call-entry.d.ts +142 -0
- package/dist/ir/call-entry.js +386 -0
- package/dist/ir/callable-class-flow.d.ts +27 -0
- package/dist/ir/callable-class-flow.js +1386 -0
- package/dist/ir/callable-field-slots.d.ts +22 -0
- package/dist/ir/callable-field-slots.js +166 -0
- package/dist/ir/callable-identity-demand.d.ts +52 -0
- package/dist/ir/callable-identity-demand.js +460 -0
- package/dist/ir/callable-member-candidates.d.ts +9 -0
- package/dist/ir/callable-member-candidates.js +39 -0
- package/dist/ir/callable-records.d.ts +21 -0
- package/dist/ir/callable-records.js +411 -0
- package/dist/ir/captures.d.ts +26 -0
- package/dist/ir/captures.js +335 -0
- package/dist/ir/certificate.d.ts +45 -0
- package/dist/ir/certificate.js +47 -0
- package/dist/ir/certify/carrier-keys.d.ts +73 -0
- package/dist/ir/certify/carrier-keys.js +221 -0
- package/dist/ir/certify/function-source.d.ts +4 -0
- package/dist/ir/certify/function-source.js +28 -0
- package/dist/ir/certify/has-property-key.d.ts +88 -0
- package/dist/ir/certify/has-property-key.js +116 -0
- package/dist/ir/certify/instanceof-key.d.ts +24 -0
- package/dist/ir/certify/instanceof-key.js +35 -0
- package/dist/ir/certify/property-access-keys.d.ts +172 -0
- package/dist/ir/certify/property-access-keys.js +291 -0
- package/dist/ir/certify/property-access.d.ts +3 -0
- package/dist/ir/certify/property-access.js +597 -0
- package/dist/ir/certify/runtime-helper.d.ts +3 -0
- package/dist/ir/certify/runtime-helper.js +326 -0
- package/dist/ir/certify/typeof-operand.d.ts +14 -0
- package/dist/ir/certify/typeof-operand.js +16 -0
- package/dist/ir/certify.d.ts +123 -0
- package/dist/ir/certify.js +481 -0
- package/dist/ir/class-evaluation.d.ts +26 -0
- package/dist/ir/class-evaluation.js +50 -0
- package/dist/ir/class-static-fields.d.ts +60 -0
- package/dist/ir/class-static-fields.js +108 -0
- package/dist/ir/construct-entry.d.ts +26 -0
- package/dist/ir/construct-entry.js +117 -0
- package/dist/ir/dead-values.d.ts +90 -0
- package/dist/ir/dead-values.js +184 -0
- package/dist/ir/deferral.d.ts +99 -0
- package/dist/ir/deferral.js +409 -0
- package/dist/ir/dense-loops.d.ts +230 -0
- package/dist/ir/dense-loops.js +697 -0
- package/dist/ir/dominance.d.ts +82 -0
- package/dist/ir/dominance.js +268 -0
- package/dist/ir/emission-representations.d.ts +71 -0
- package/dist/ir/emission-representations.js +350 -0
- package/dist/ir/facts.d.ts +218 -0
- package/dist/ir/facts.js +181 -0
- package/dist/ir/fixed-data-definition.d.ts +19 -0
- package/dist/ir/fixed-data-definition.js +49 -0
- package/dist/ir/generator-split.d.ts +38 -0
- package/dist/ir/generator-split.js +329 -0
- package/dist/ir/hoist.d.ts +55 -0
- package/dist/ir/hoist.js +375 -0
- package/dist/ir/instantiation.d.ts +61 -0
- package/dist/ir/instantiation.js +137 -0
- package/dist/ir/integer-storage.d.ts +170 -0
- package/dist/ir/integer-storage.js +822 -0
- package/dist/ir/integers.d.ts +161 -0
- package/dist/ir/integers.js +539 -0
- package/dist/ir/integrity-restrictions.d.ts +50 -0
- package/dist/ir/integrity-restrictions.js +118 -0
- package/dist/ir/local-iterators.d.ts +4 -0
- package/dist/ir/local-iterators.js +27 -0
- package/dist/ir/lower-allocation.d.ts +4 -0
- package/dist/ir/lower-allocation.js +325 -0
- package/dist/ir/lower-completion.d.ts +15 -0
- package/dist/ir/lower-completion.js +25 -0
- package/dist/ir/lower-destructuring.d.ts +5 -0
- package/dist/ir/lower-destructuring.js +693 -0
- package/dist/ir/lower-element.d.ts +29 -0
- package/dist/ir/lower-element.js +111 -0
- package/dist/ir/lower-exceptions.d.ts +47 -0
- package/dist/ir/lower-exceptions.js +92 -0
- package/dist/ir/lower-flow.d.ts +137 -0
- package/dist/ir/lower-flow.js +600 -0
- package/dist/ir/lower-graph.d.ts +218 -0
- package/dist/ir/lower-graph.js +687 -0
- package/dist/ir/lower-invocation.d.ts +4 -0
- package/dist/ir/lower-invocation.js +514 -0
- package/dist/ir/lower-narrow.d.ts +53 -0
- package/dist/ir/lower-narrow.js +320 -0
- package/dist/ir/lower-operands.d.ts +272 -0
- package/dist/ir/lower-operands.js +461 -0
- package/dist/ir/lower-property.d.ts +21 -0
- package/dist/ir/lower-property.js +132 -0
- package/dist/ir/lower-protocol.d.ts +11 -0
- package/dist/ir/lower-protocol.js +118 -0
- package/dist/ir/lower-short-circuit.d.ts +41 -0
- package/dist/ir/lower-short-circuit.js +63 -0
- package/dist/ir/lower.d.ts +82 -0
- package/dist/ir/lower.js +1346 -0
- package/dist/ir/model.d.ts +1474 -0
- package/dist/ir/model.js +6 -0
- package/dist/ir/native-absent-property.d.ts +3 -0
- package/dist/ir/native-absent-property.js +13 -0
- package/dist/ir/native-array-transport.d.ts +7 -0
- package/dist/ir/native-array-transport.js +46 -0
- package/dist/ir/native-callable-bind.d.ts +9 -0
- package/dist/ir/native-callable-bind.js +30 -0
- package/dist/ir/native-carrier-predicate.d.ts +34 -0
- package/dist/ir/native-carrier-predicate.js +49 -0
- package/dist/ir/native-class-accessor.d.ts +18 -0
- package/dist/ir/native-class-accessor.js +52 -0
- package/dist/ir/native-class-construction.d.ts +16 -0
- package/dist/ir/native-class-construction.js +71 -0
- package/dist/ir/native-class-initialization.d.ts +15 -0
- package/dist/ir/native-class-initialization.js +56 -0
- package/dist/ir/native-class-origins.d.ts +13 -0
- package/dist/ir/native-class-origins.js +237 -0
- package/dist/ir/native-dictionary-transport.d.ts +6 -0
- package/dist/ir/native-dictionary-transport.js +37 -0
- package/dist/ir/native-enumeration.d.ts +14 -0
- package/dist/ir/native-enumeration.js +26 -0
- package/dist/ir/native-equality.d.ts +10 -0
- package/dist/ir/native-equality.js +18 -0
- package/dist/ir/native-field-owner.d.ts +37 -0
- package/dist/ir/native-field-owner.js +183 -0
- package/dist/ir/native-fixed-layout.d.ts +41 -0
- package/dist/ir/native-fixed-layout.js +232 -0
- package/dist/ir/native-host-construction.d.ts +53 -0
- package/dist/ir/native-host-construction.js +62 -0
- package/dist/ir/native-key-query.d.ts +4 -0
- package/dist/ir/native-key-query.js +38 -0
- package/dist/ir/native-merge-transport.d.ts +25 -0
- package/dist/ir/native-merge-transport.js +71 -0
- package/dist/ir/native-record-index-transport.d.ts +11 -0
- package/dist/ir/native-record-index-transport.js +34 -0
- package/dist/ir/native-record-index.d.ts +12 -0
- package/dist/ir/native-record-index.js +27 -0
- package/dist/ir/native-reflect-field.d.ts +5 -0
- package/dist/ir/native-reflect-field.js +33 -0
- package/dist/ir/native-sequence-transport.d.ts +7 -0
- package/dist/ir/native-sequence-transport.js +53 -0
- package/dist/ir/numeric-intrinsics.d.ts +13 -0
- package/dist/ir/numeric-intrinsics.js +57 -0
- package/dist/ir/object-value-conversions.d.ts +20 -0
- package/dist/ir/object-value-conversions.js +50 -0
- package/dist/ir/physical-class-reflection.d.ts +9 -0
- package/dist/ir/physical-class-reflection.js +57 -0
- package/dist/ir/presence-proof.d.ts +42 -0
- package/dist/ir/presence-proof.js +490 -0
- package/dist/ir/program-facts.d.ts +106 -0
- package/dist/ir/program-facts.js +319 -0
- package/dist/ir/proven-branches.d.ts +16 -0
- package/dist/ir/proven-branches.js +219 -0
- package/dist/ir/queries.d.ts +41 -0
- package/dist/ir/queries.js +213 -0
- package/dist/ir/reflection-demand.d.ts +64 -0
- package/dist/ir/reflection-demand.js +1394 -0
- package/dist/ir/refusal.d.ts +43 -0
- package/dist/ir/refusal.js +28 -0
- package/dist/ir/shake.d.ts +37 -0
- package/dist/ir/shake.js +1078 -0
- package/dist/ir/static-callables.d.ts +11 -0
- package/dist/ir/static-callables.js +163 -0
- package/dist/ir/string-layout-reuse.d.ts +13 -0
- package/dist/ir/string-layout-reuse.js +39 -0
- package/dist/ir/string-length-reuse.d.ts +8 -0
- package/dist/ir/string-length-reuse.js +47 -0
- package/dist/ir/transfer.d.ts +78 -0
- package/dist/ir/transfer.js +270 -0
- package/dist/ir/type-query-results.d.ts +25 -0
- package/dist/ir/type-query-results.js +96 -0
- package/dist/ir/typed-property-access.d.ts +100 -0
- package/dist/ir/typed-property-access.js +161 -0
- package/dist/ir/verify.d.ts +19 -0
- package/dist/ir/verify.js +355 -0
- package/dist/plugins/apple/constructors.d.ts +112 -0
- package/dist/plugins/apple/constructors.js +217 -0
- package/dist/plugins/apple/host.d.ts +181 -0
- package/dist/plugins/apple/host.js +262 -0
- package/dist/plugins/apple/jsx.d.ts +2 -0
- package/dist/plugins/apple/jsx.js +293 -0
- package/dist/plugins/apple/members.d.ts +16 -0
- package/dist/plugins/apple/members.js +190 -0
- package/dist/plugins/apple/plugin.d.ts +2 -0
- package/dist/plugins/apple/plugin.js +156 -0
- package/dist/plugins/gea/component-classes.d.ts +25 -0
- package/dist/plugins/gea/component-classes.js +162 -0
- package/dist/plugins/gea/component-inline.d.ts +13 -0
- package/dist/plugins/gea/component-inline.js +532 -0
- package/dist/plugins/gea/constructors.d.ts +23 -0
- package/dist/plugins/gea/constructors.js +100 -0
- package/dist/plugins/gea/contract.d.ts +150 -0
- package/dist/plugins/gea/contract.js +195 -0
- package/dist/plugins/gea/element-ref.d.ts +31 -0
- package/dist/plugins/gea/element-ref.js +45 -0
- package/dist/plugins/gea/host.d.ts +520 -0
- package/dist/plugins/gea/host.js +762 -0
- package/dist/plugins/gea/lower.d.ts +6 -0
- package/dist/plugins/gea/lower.js +195 -0
- package/dist/plugins/gea/members.d.ts +22 -0
- package/dist/plugins/gea/members.js +221 -0
- package/dist/plugins/gea/plugin.d.ts +22 -0
- package/dist/plugins/gea/plugin.js +307 -0
- package/dist/plugins/gea/prelude.d.ts +78 -0
- package/dist/plugins/gea/prelude.js +153 -0
- package/dist/plugins/gea/producer.d.ts +5 -0
- package/dist/plugins/gea/producer.js +52 -0
- package/dist/plugins/gea/reactive-slots.d.ts +49 -0
- package/dist/plugins/gea/reactive-slots.js +578 -0
- package/dist/plugins/gea/render-bridge.d.ts +6 -0
- package/dist/plugins/gea/render-bridge.js +281 -0
- package/dist/plugins/gea/slots.d.ts +15 -0
- package/dist/plugins/gea/slots.js +36 -0
- package/dist/plugins/gea/template-analysis.d.ts +151 -0
- package/dist/plugins/gea/template-analysis.js +346 -0
- package/dist/plugins/gea/user-agent-styles.d.ts +9 -0
- package/dist/plugins/gea/user-agent-styles.js +94 -0
- package/dist/plugins/installed.d.ts +19 -0
- package/dist/plugins/installed.js +21 -0
- package/dist/plugins/load.d.ts +7 -0
- package/dist/plugins/load.js +207 -0
- package/dist/plugins/model.d.ts +735 -0
- package/dist/plugins/model.js +47 -0
- package/dist/plugins/webgl/host.d.ts +77 -0
- package/dist/plugins/webgl/host.js +162 -0
- package/dist/plugins/webgl/plugin.d.ts +40 -0
- package/dist/plugins/webgl/plugin.js +99 -0
- package/dist/preflight/obligations.d.ts +206 -0
- package/dist/preflight/obligations.js +36 -0
- package/dist/preflight/report.d.ts +20 -0
- package/dist/preflight/report.js +61 -0
- package/dist/preflight/run.d.ts +39 -0
- package/dist/preflight/run.js +403 -0
- package/dist/project-preparation.d.ts +33 -0
- package/dist/project-preparation.js +314 -0
- package/dist/projection/abi.d.ts +82 -0
- package/dist/projection/abi.js +349 -0
- package/dist/projection/apply-arguments.d.ts +12 -0
- package/dist/projection/apply-arguments.js +20 -0
- package/dist/projection/bindings.d.ts +250 -0
- package/dist/projection/bindings.js +340 -0
- package/dist/projection/callee.d.ts +196 -0
- package/dist/projection/callee.js +444 -0
- package/dist/projection/class-property-presence.d.ts +28 -0
- package/dist/projection/class-property-presence.js +58 -0
- package/dist/projection/class-prototype.d.ts +5 -0
- package/dist/projection/class-prototype.js +23 -0
- package/dist/projection/class-storage.d.ts +26 -0
- package/dist/projection/class-storage.js +236 -0
- package/dist/projection/classes.d.ts +283 -0
- package/dist/projection/classes.js +944 -0
- package/dist/projection/coercions.d.ts +20 -0
- package/dist/projection/coercions.js +33 -0
- package/dist/projection/dispatch.d.ts +167 -0
- package/dist/projection/dispatch.js +379 -0
- package/dist/projection/fields.d.ts +123 -0
- package/dist/projection/fields.js +383 -0
- package/dist/projection/instance-test.d.ts +78 -0
- package/dist/projection/instance-test.js +156 -0
- package/dist/projection/slots.d.ts +146 -0
- package/dist/projection/slots.js +663 -0
- package/dist/projection/synthesized-abi.d.ts +61 -0
- package/dist/projection/synthesized-abi.js +94 -0
- package/dist/representation/array-index.d.ts +14 -0
- package/dist/representation/array-index.js +17 -0
- package/dist/representation/callable-object.d.ts +3 -0
- package/dist/representation/callable-object.js +6 -0
- package/dist/representation/collections.d.ts +84 -0
- package/dist/representation/collections.js +139 -0
- package/dist/representation/derive.d.ts +159 -0
- package/dist/representation/derive.js +2546 -0
- package/dist/representation/difference.d.ts +30 -0
- package/dist/representation/difference.js +240 -0
- package/dist/representation/field-descriptor-policy.d.ts +19 -0
- package/dist/representation/field-descriptor-policy.js +39 -0
- package/dist/representation/function-constructor.d.ts +13 -0
- package/dist/representation/function-constructor.js +9 -0
- package/dist/representation/host-abi.d.ts +32 -0
- package/dist/representation/host-abi.js +97 -0
- package/dist/representation/host-templates.d.ts +67 -0
- package/dist/representation/host-templates.js +94 -0
- package/dist/representation/intersection.d.ts +84 -0
- package/dist/representation/intersection.js +149 -0
- package/dist/representation/literal-destination.d.ts +43 -0
- package/dist/representation/literal-destination.js +133 -0
- package/dist/representation/merge.d.ts +18 -0
- package/dist/representation/merge.js +83 -0
- package/dist/representation/model.d.ts +1160 -0
- package/dist/representation/model.js +1019 -0
- package/dist/representation/numeric-index.d.ts +13 -0
- package/dist/representation/numeric-index.js +29 -0
- package/dist/representation/object-shape.d.ts +109 -0
- package/dist/representation/object-shape.js +123 -0
- package/dist/representation/optional.d.ts +12 -0
- package/dist/representation/optional.js +87 -0
- package/dist/representation/plan.d.ts +60 -0
- package/dist/representation/plan.js +78 -0
- package/dist/representation/policies.d.ts +589 -0
- package/dist/representation/policies.js +107 -0
- package/dist/representation/primitive-domain.d.ts +1 -0
- package/dist/representation/primitive-domain.js +1 -0
- package/dist/representation/primitives.d.ts +44 -0
- package/dist/representation/primitives.js +78 -0
- package/dist/representation/publish.d.ts +49 -0
- package/dist/representation/publish.js +648 -0
- package/dist/representation/record-fields.d.ts +96 -0
- package/dist/representation/record-fields.js +116 -0
- package/dist/representation/template-object.d.ts +11 -0
- package/dist/representation/template-object.js +26 -0
- package/dist/representation/union.d.ts +30 -0
- package/dist/representation/union.js +324 -0
- package/dist/representation/value-records.d.ts +3 -0
- package/dist/representation/value-records.js +307 -0
- package/dist/representation/verify.d.ts +17 -0
- package/dist/representation/verify.js +221 -0
- package/dist/semantics/alias-this-field-declaration-transform.d.ts +4 -0
- package/dist/semantics/alias-this-field-declaration-transform.js +207 -0
- package/dist/semantics/ambient-type-realization-transform.d.ts +62 -0
- package/dist/semantics/ambient-type-realization-transform.js +168 -0
- package/dist/semantics/ambient.d.ts +24 -0
- package/dist/semantics/ambient.js +119 -0
- package/dist/semantics/borrowed-builtin-call-bind-source-transform.d.ts +4 -0
- package/dist/semantics/borrowed-builtin-call-bind-source-transform.js +341 -0
- package/dist/semantics/callable-origins.d.ts +46 -0
- package/dist/semantics/callable-origins.js +354 -0
- package/dist/semantics/class-alias.d.ts +7 -0
- package/dist/semantics/class-alias.js +37 -0
- package/dist/semantics/class-heritage.d.ts +34 -0
- package/dist/semantics/class-heritage.js +104 -0
- package/dist/semantics/commonjs-wrapper.d.ts +69 -0
- package/dist/semantics/commonjs-wrapper.js +231 -0
- package/dist/semantics/constructor-slot-subclasses.d.ts +28 -0
- package/dist/semantics/constructor-slot-subclasses.js +112 -0
- package/dist/semantics/declaration-overlay-transform.d.ts +35 -0
- package/dist/semantics/declaration-overlay-transform.js +2157 -0
- package/dist/semantics/define-property-source-transform.d.ts +4 -0
- package/dist/semantics/define-property-source-transform.js +437 -0
- package/dist/semantics/diagnostic-source-preparation.d.ts +24 -0
- package/dist/semantics/diagnostic-source-preparation.js +82 -0
- package/dist/semantics/documentation-ranges.d.ts +22 -0
- package/dist/semantics/documentation-ranges.js +36 -0
- package/dist/semantics/dynamic-fallback.d.ts +86 -0
- package/dist/semantics/dynamic-fallback.js +249 -0
- package/dist/semantics/frontend-timing.d.ts +6 -0
- package/dist/semantics/frontend-timing.js +35 -0
- package/dist/semantics/frontend.d.ts +504 -0
- package/dist/semantics/frontend.js +1157 -0
- package/dist/semantics/host-declaration-provenance.d.ts +11 -0
- package/dist/semantics/host-declaration-provenance.js +18 -0
- package/dist/semantics/host-methods.d.ts +24 -0
- package/dist/semantics/host-methods.js +74 -0
- package/dist/semantics/host-protocols.d.ts +429 -0
- package/dist/semantics/host-protocols.js +1501 -0
- package/dist/semantics/inherited-accessor.d.ts +7 -0
- package/dist/semantics/inherited-accessor.js +48 -0
- package/dist/semantics/interface-families.d.ts +70 -0
- package/dist/semantics/interface-families.js +180 -0
- package/dist/semantics/interface-implementors.d.ts +53 -0
- package/dist/semantics/interface-implementors.js +87 -0
- package/dist/semantics/jsdoc-namepath-transform.d.ts +4 -0
- package/dist/semantics/jsdoc-namepath-transform.js +85 -0
- package/dist/semantics/model/coverage.d.ts +68 -0
- package/dist/semantics/model/coverage.js +73 -0
- package/dist/semantics/model/edges.d.ts +103 -0
- package/dist/semantics/model/edges.js +20 -0
- package/dist/semantics/model/graph.d.ts +55 -0
- package/dist/semantics/model/graph.js +129 -0
- package/dist/semantics/model/operands.d.ts +159 -0
- package/dist/semantics/model/operands.js +26 -0
- package/dist/semantics/model/operations.d.ts +496 -0
- package/dist/semantics/model/operations.js +2 -0
- package/dist/semantics/model/primitive-domain.d.ts +26 -0
- package/dist/semantics/model/primitive-domain.js +38 -0
- package/dist/semantics/model/selected-signature.d.ts +261 -0
- package/dist/semantics/model/selected-signature.js +55 -0
- package/dist/semantics/model/structural-type-table.d.ts +93 -0
- package/dist/semantics/model/structural-type-table.js +237 -0
- package/dist/semantics/model/structural-types.d.ts +367 -0
- package/dist/semantics/model/structural-types.js +200 -0
- package/dist/semantics/module-resolution.d.ts +23 -0
- package/dist/semantics/module-resolution.js +227 -0
- package/dist/semantics/new-callee-class-tag-source-transform.d.ts +4 -0
- package/dist/semantics/new-callee-class-tag-source-transform.js +64 -0
- package/dist/semantics/node-project.d.ts +13 -0
- package/dist/semantics/node-project.js +107 -0
- package/dist/semantics/node-source-hooks.d.ts +1 -0
- package/dist/semantics/node-source-hooks.js +63 -0
- package/dist/semantics/normalize/absent-globals.d.ts +143 -0
- package/dist/semantics/normalize/absent-globals.js +191 -0
- package/dist/semantics/normalize/arguments-objects.d.ts +43 -0
- package/dist/semantics/normalize/arguments-objects.js +60 -0
- package/dist/semantics/normalize/asserted-arm-absence.d.ts +28 -0
- package/dist/semantics/normalize/asserted-arm-absence.js +61 -0
- package/dist/semantics/normalize/assignment-patterns.d.ts +70 -0
- package/dist/semantics/normalize/assignment-patterns.js +147 -0
- package/dist/semantics/normalize/bag-absence.d.ts +8 -0
- package/dist/semantics/normalize/bag-absence.js +42 -0
- package/dist/semantics/normalize/binding-fixpoint.d.ts +36 -0
- package/dist/semantics/normalize/binding-fixpoint.js +140 -0
- package/dist/semantics/normalize/callback-parameter-contracts.d.ts +16 -0
- package/dist/semantics/normalize/callback-parameter-contracts.js +91 -0
- package/dist/semantics/normalize/cells/agreement.d.ts +46 -0
- package/dist/semantics/normalize/cells/agreement.js +34 -0
- package/dist/semantics/normalize/cells/candidates.d.ts +17 -0
- package/dist/semantics/normalize/cells/candidates.js +35 -0
- package/dist/semantics/normalize/cells/facts.d.ts +19 -0
- package/dist/semantics/normalize/cells/facts.js +90 -0
- package/dist/semantics/normalize/cells/index.d.ts +10 -0
- package/dist/semantics/normalize/cells/index.js +6 -0
- package/dist/semantics/normalize/cells/model.d.ts +98 -0
- package/dist/semantics/normalize/cells/model.js +2 -0
- package/dist/semantics/normalize/cells/policies/bag.d.ts +44 -0
- package/dist/semantics/normalize/cells/policies/bag.js +114 -0
- package/dist/semantics/normalize/cells/policies/collection.d.ts +42 -0
- package/dist/semantics/normalize/cells/policies/collection.js +218 -0
- package/dist/semantics/normalize/cells/policies/field.d.ts +28 -0
- package/dist/semantics/normalize/cells/policies/field.js +40 -0
- package/dist/semantics/normalize/cells/policies/index.d.ts +49 -0
- package/dist/semantics/normalize/cells/policies/index.js +58 -0
- package/dist/semantics/normalize/cells/policies/local.d.ts +18 -0
- package/dist/semantics/normalize/cells/policies/local.js +37 -0
- package/dist/semantics/normalize/cells/policies/parameter.d.ts +28 -0
- package/dist/semantics/normalize/cells/policies/parameter.js +39 -0
- package/dist/semantics/normalize/cells/policies/return.d.ts +26 -0
- package/dist/semantics/normalize/cells/policies/return.js +45 -0
- package/dist/semantics/normalize/cells/policies/shared.d.ts +33 -0
- package/dist/semantics/normalize/cells/policies/shared.js +45 -0
- package/dist/semantics/normalize/cells/policy.d.ts +72 -0
- package/dist/semantics/normalize/cells/policy.js +18 -0
- package/dist/semantics/normalize/cells/registry.d.ts +14 -0
- package/dist/semantics/normalize/cells/registry.js +17 -0
- package/dist/semantics/normalize/census-refusal.d.ts +62 -0
- package/dist/semantics/normalize/census-refusal.js +27 -0
- package/dist/semantics/normalize/census.d.ts +109 -0
- package/dist/semantics/normalize/census.js +667 -0
- package/dist/semantics/normalize/collection-bindings.d.ts +278 -0
- package/dist/semantics/normalize/collection-bindings.js +677 -0
- package/dist/semantics/normalize/commonjs-module-record.d.ts +21 -0
- package/dist/semantics/normalize/commonjs-module-record.js +289 -0
- package/dist/semantics/normalize/commonjs-require.d.ts +13 -0
- package/dist/semantics/normalize/commonjs-require.js +1527 -0
- package/dist/semantics/normalize/contribution.d.ts +63 -0
- package/dist/semantics/normalize/contribution.js +172 -0
- package/dist/semantics/normalize/dead-typeof-guards.d.ts +64 -0
- package/dist/semantics/normalize/dead-typeof-guards.js +152 -0
- package/dist/semantics/normalize/deferred-intrinsic-protocols.d.ts +57 -0
- package/dist/semantics/normalize/deferred-intrinsic-protocols.js +109 -0
- package/dist/semantics/normalize/derived-expression-type.d.ts +1070 -0
- package/dist/semantics/normalize/derived-expression-type.js +3463 -0
- package/dist/semantics/normalize/evaluation-order.d.ts +16 -0
- package/dist/semantics/normalize/evaluation-order.js +37 -0
- package/dist/semantics/normalize/field-bindings.d.ts +167 -0
- package/dist/semantics/normalize/field-bindings.js +1125 -0
- package/dist/semantics/normalize/flow/array-element-continuation.d.ts +27 -0
- package/dist/semantics/normalize/flow/array-element-continuation.js +1452 -0
- package/dist/semantics/normalize/flow/callable-array-origins.d.ts +42 -0
- package/dist/semantics/normalize/flow/callable-array-origins.js +318 -0
- package/dist/semantics/normalize/flow/callable-completions.d.ts +45 -0
- package/dist/semantics/normalize/flow/callable-completions.js +82 -0
- package/dist/semantics/normalize/flow/callable-reach.d.ts +237 -0
- package/dist/semantics/normalize/flow/callable-reach.js +7174 -0
- package/dist/semantics/normalize/flow/class-family-member-read.d.ts +16 -0
- package/dist/semantics/normalize/flow/class-family-member-read.js +992 -0
- package/dist/semantics/normalize/flow/collection-value-continuation.d.ts +21 -0
- package/dist/semantics/normalize/flow/collection-value-continuation.js +192 -0
- package/dist/semantics/normalize/flow/component-solver.d.ts +199 -0
- package/dist/semantics/normalize/flow/component-solver.js +587 -0
- package/dist/semantics/normalize/flow/computed-key-set.d.ts +84 -0
- package/dist/semantics/normalize/flow/computed-key-set.js +660 -0
- package/dist/semantics/normalize/flow/export-importers.d.ts +24 -0
- package/dist/semantics/normalize/flow/export-importers.js +269 -0
- package/dist/semantics/normalize/flow/host-text-sink.d.ts +25 -0
- package/dist/semantics/normalize/flow/host-text-sink.js +87 -0
- package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.d.ts +84 -0
- package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.js +180 -0
- package/dist/semantics/normalize/flow/intrinsic-data-definition.d.ts +35 -0
- package/dist/semantics/normalize/flow/intrinsic-data-definition.js +140 -0
- package/dist/semantics/normalize/flow/invocation-facts.d.ts +98 -0
- package/dist/semantics/normalize/flow/invocation-facts.js +257 -0
- package/dist/semantics/normalize/flow/member-call-forwarding.d.ts +122 -0
- package/dist/semantics/normalize/flow/member-call-forwarding.js +835 -0
- package/dist/semantics/normalize/flow/model.d.ts +357 -0
- package/dist/semantics/normalize/flow/model.js +177 -0
- package/dist/semantics/normalize/flow/native-collection-protocol.d.ts +24 -0
- package/dist/semantics/normalize/flow/native-collection-protocol.js +252 -0
- package/dist/semantics/normalize/flow/node-path-token.d.ts +3 -0
- package/dist/semantics/normalize/flow/node-path-token.js +53 -0
- package/dist/semantics/normalize/flow/object-binding-continuation.d.ts +11 -0
- package/dist/semantics/normalize/flow/object-binding-continuation.js +42 -0
- package/dist/semantics/normalize/flow/origin-authority.d.ts +56 -0
- package/dist/semantics/normalize/flow/origin-authority.js +2 -0
- package/dist/semantics/normalize/flow/owned-class-receivers.d.ts +35 -0
- package/dist/semantics/normalize/flow/owned-class-receivers.js +191 -0
- package/dist/semantics/normalize/flow/parameter-values.d.ts +27 -0
- package/dist/semantics/normalize/flow/parameter-values.js +251 -0
- package/dist/semantics/normalize/flow/proof-hypotheses.d.ts +66 -0
- package/dist/semantics/normalize/flow/proof-hypotheses.js +162 -0
- package/dist/semantics/normalize/flow/record-alias-closure.d.ts +27 -0
- package/dist/semantics/normalize/flow/record-alias-closure.js +298 -0
- package/dist/semantics/normalize/flow/seeded-origins.d.ts +43 -0
- package/dist/semantics/normalize/flow/seeded-origins.js +54 -0
- package/dist/semantics/normalize/flow/source-class-data.d.ts +132 -0
- package/dist/semantics/normalize/flow/source-class-data.js +838 -0
- package/dist/semantics/normalize/flow/source-class-instanceof.d.ts +13 -0
- package/dist/semantics/normalize/flow/source-class-instanceof.js +37 -0
- package/dist/semantics/normalize/flow/source-class-static-data.d.ts +16 -0
- package/dist/semantics/normalize/flow/source-class-static-data.js +47 -0
- package/dist/semantics/normalize/flow/source-construction-frames.d.ts +12 -0
- package/dist/semantics/normalize/flow/source-construction-frames.js +118 -0
- package/dist/semantics/normalize/flow/source-invocation-frame-layout.d.ts +34 -0
- package/dist/semantics/normalize/flow/source-invocation-frame-layout.js +78 -0
- package/dist/semantics/normalize/flow/source-invocation-receiver.d.ts +37 -0
- package/dist/semantics/normalize/flow/source-invocation-receiver.js +95 -0
- package/dist/semantics/normalize/flow/source-prototype-method-identity.d.ts +23 -0
- package/dist/semantics/normalize/flow/source-prototype-method-identity.js +81 -0
- package/dist/semantics/normalize/flow/source-record-data.d.ts +29 -0
- package/dist/semantics/normalize/flow/source-record-data.js +626 -0
- package/dist/semantics/normalize/flow/source-value-session.d.ts +77 -0
- package/dist/semantics/normalize/flow/source-value-session.js +3089 -0
- package/dist/semantics/normalize/flow/targets.d.ts +118 -0
- package/dist/semantics/normalize/flow/targets.js +405 -0
- package/dist/semantics/normalize/flow/value-flow.d.ts +36 -0
- package/dist/semantics/normalize/flow/value-flow.js +823 -0
- package/dist/semantics/normalize/flow/value-provenance.d.ts +31 -0
- package/dist/semantics/normalize/flow/value-provenance.js +112 -0
- package/dist/semantics/normalize/gating.d.ts +51 -0
- package/dist/semantics/normalize/gating.js +560 -0
- package/dist/semantics/normalize/generic-function-choice.d.ts +31 -0
- package/dist/semantics/normalize/generic-function-choice.js +115 -0
- package/dist/semantics/normalize/global-host-mutations.d.ts +51 -0
- package/dist/semantics/normalize/global-host-mutations.js +5989 -0
- package/dist/semantics/normalize/host-effect-contracts.d.ts +77 -0
- package/dist/semantics/normalize/host-effect-contracts.js +143 -0
- package/dist/semantics/normalize/host-mutation-computed-keys.d.ts +38 -0
- package/dist/semantics/normalize/host-mutation-computed-keys.js +26 -0
- package/dist/semantics/normalize/host-mutation-key-reader.d.ts +66 -0
- package/dist/semantics/normalize/host-mutation-key-reader.js +192 -0
- package/dist/semantics/normalize/host-mutation-keys.d.ts +114 -0
- package/dist/semantics/normalize/host-mutation-keys.js +183 -0
- package/dist/semantics/normalize/identities.d.ts +172 -0
- package/dist/semantics/normalize/identities.js +426 -0
- package/dist/semantics/normalize/implicit-arguments-tuple.d.ts +97 -0
- package/dist/semantics/normalize/implicit-arguments-tuple.js +197 -0
- package/dist/semantics/normalize/implicit-arguments.d.ts +11 -0
- package/dist/semantics/normalize/implicit-arguments.js +39 -0
- package/dist/semantics/normalize/instantiation.d.ts +73 -0
- package/dist/semantics/normalize/instantiation.js +399 -0
- package/dist/semantics/normalize/intrinsic-property-call.d.ts +18 -0
- package/dist/semantics/normalize/intrinsic-property-call.js +69 -0
- package/dist/semantics/normalize/intrinsic-prototype.d.ts +41 -0
- package/dist/semantics/normalize/intrinsic-prototype.js +87 -0
- package/dist/semantics/normalize/intrinsic-static-member.d.ts +14 -0
- package/dist/semantics/normalize/intrinsic-static-member.js +23 -0
- package/dist/semantics/normalize/jsdoc-type-names.d.ts +32 -0
- package/dist/semantics/normalize/jsdoc-type-names.js +512 -0
- package/dist/semantics/normalize/keyof.d.ts +32 -0
- package/dist/semantics/normalize/keyof.js +110 -0
- package/dist/semantics/normalize/local-bindings.d.ts +176 -0
- package/dist/semantics/normalize/local-bindings.js +1826 -0
- package/dist/semantics/normalize/logical-result-type.d.ts +16 -0
- package/dist/semantics/normalize/logical-result-type.js +102 -0
- package/dist/semantics/normalize/namespace-paths.d.ts +57 -0
- package/dist/semantics/normalize/namespace-paths.js +108 -0
- package/dist/semantics/normalize/normalize.d.ts +57 -0
- package/dist/semantics/normalize/normalize.js +68 -0
- package/dist/semantics/normalize/object-bag-bindings.d.ts +305 -0
- package/dist/semantics/normalize/object-bag-bindings.js +1290 -0
- package/dist/semantics/normalize/omitted-stated-parameter.d.ts +53 -0
- package/dist/semantics/normalize/omitted-stated-parameter.js +59 -0
- package/dist/semantics/normalize/open-type-form.d.ts +10 -0
- package/dist/semantics/normalize/open-type-form.js +32 -0
- package/dist/semantics/normalize/parameter-bindings.d.ts +361 -0
- package/dist/semantics/normalize/parameter-bindings.js +3339 -0
- package/dist/semantics/normalize/parameter-slot.d.ts +264 -0
- package/dist/semantics/normalize/parameter-slot.js +491 -0
- package/dist/semantics/normalize/physical-overload-result.d.ts +77 -0
- package/dist/semantics/normalize/physical-overload-result.js +99 -0
- package/dist/semantics/normalize/primitive-property-absence.d.ts +12 -0
- package/dist/semantics/normalize/primitive-property-absence.js +60 -0
- package/dist/semantics/normalize/producer-context.d.ts +376 -0
- package/dist/semantics/normalize/producer-context.js +1 -0
- package/dist/semantics/normalize/producers/allocations.d.ts +3 -0
- package/dist/semantics/normalize/producers/allocations.js +863 -0
- package/dist/semantics/normalize/producers/binding-kind.d.ts +37 -0
- package/dist/semantics/normalize/producers/binding-kind.js +36 -0
- package/dist/semantics/normalize/producers/bindings.d.ts +85 -0
- package/dist/semantics/normalize/producers/bindings.js +710 -0
- package/dist/semantics/normalize/producers/boundary.d.ts +34 -0
- package/dist/semantics/normalize/producers/boundary.js +123 -0
- package/dist/semantics/normalize/producers/class-lifecycle.d.ts +3 -0
- package/dist/semantics/normalize/producers/class-lifecycle.js +902 -0
- package/dist/semantics/normalize/producers/computations.d.ts +3 -0
- package/dist/semantics/normalize/producers/computations.js +613 -0
- package/dist/semantics/normalize/producers/control-loops.d.ts +30 -0
- package/dist/semantics/normalize/producers/control-loops.js +91 -0
- package/dist/semantics/normalize/producers/control.d.ts +30 -0
- package/dist/semantics/normalize/producers/control.js +923 -0
- package/dist/semantics/normalize/producers/declaration-lifecycle.d.ts +3 -0
- package/dist/semantics/normalize/producers/declaration-lifecycle.js +390 -0
- package/dist/semantics/normalize/producers/destructuring.d.ts +45 -0
- package/dist/semantics/normalize/producers/destructuring.js +1180 -0
- package/dist/semantics/normalize/producers/dynamic-language.d.ts +3 -0
- package/dist/semantics/normalize/producers/dynamic-language.js +70 -0
- package/dist/semantics/normalize/producers/erasure.d.ts +51 -0
- package/dist/semantics/normalize/producers/erasure.js +90 -0
- package/dist/semantics/normalize/producers/installed.d.ts +3 -0
- package/dist/semantics/normalize/producers/installed.js +55 -0
- package/dist/semantics/normalize/producers/invocations.d.ts +35 -0
- package/dist/semantics/normalize/producers/invocations.js +1796 -0
- package/dist/semantics/normalize/producers/iteration-yield.d.ts +59 -0
- package/dist/semantics/normalize/producers/iteration-yield.js +235 -0
- package/dist/semantics/normalize/producers/jsx.d.ts +3 -0
- package/dist/semantics/normalize/producers/jsx.js +360 -0
- package/dist/semantics/normalize/producers/mint.d.ts +39 -0
- package/dist/semantics/normalize/producers/mint.js +44 -0
- package/dist/semantics/normalize/producers/nullish.d.ts +16 -0
- package/dist/semantics/normalize/producers/nullish.js +27 -0
- package/dist/semantics/normalize/producers/object-assignment.d.ts +8 -0
- package/dist/semantics/normalize/producers/object-assignment.js +204 -0
- package/dist/semantics/normalize/producers/object-tag.d.ts +9 -0
- package/dist/semantics/normalize/producers/object-tag.js +119 -0
- package/dist/semantics/normalize/producers/optional-chain.d.ts +44 -0
- package/dist/semantics/normalize/producers/optional-chain.js +75 -0
- package/dist/semantics/normalize/producers/properties.d.ts +21 -0
- package/dist/semantics/normalize/producers/properties.js +1053 -0
- package/dist/semantics/normalize/producers/protocol.d.ts +67 -0
- package/dist/semantics/normalize/producers/protocol.js +695 -0
- package/dist/semantics/normalize/producers/references.d.ts +53 -0
- package/dist/semantics/normalize/producers/references.js +1027 -0
- package/dist/semantics/normalize/producers/shared.d.ts +561 -0
- package/dist/semantics/normalize/producers/shared.js +1683 -0
- package/dist/semantics/normalize/producers/spread-arguments.d.ts +72 -0
- package/dist/semantics/normalize/producers/spread-arguments.js +375 -0
- package/dist/semantics/normalize/producers/tagged-template.d.ts +5 -0
- package/dist/semantics/normalize/producers/tagged-template.js +307 -0
- package/dist/semantics/normalize/producers/tuple-spread.d.ts +189 -0
- package/dist/semantics/normalize/producers/tuple-spread.js +279 -0
- package/dist/semantics/normalize/property-key-domain.d.ts +36 -0
- package/dist/semantics/normalize/property-key-domain.js +150 -0
- package/dist/semantics/normalize/reachability.d.ts +189 -0
- package/dist/semantics/normalize/reachability.js +1057 -0
- package/dist/semantics/normalize/reassigned-bindings.d.ts +13 -0
- package/dist/semantics/normalize/reassigned-bindings.js +41 -0
- package/dist/semantics/normalize/record-storage-families.d.ts +11 -0
- package/dist/semantics/normalize/record-storage-families.js +109 -0
- package/dist/semantics/normalize/return-bindings.d.ts +260 -0
- package/dist/semantics/normalize/return-bindings.js +1311 -0
- package/dist/semantics/normalize/return-paths.d.ts +2 -0
- package/dist/semantics/normalize/return-paths.js +28 -0
- package/dist/semantics/normalize/script-global-redefinition.d.ts +44 -0
- package/dist/semantics/normalize/script-global-redefinition.js +75 -0
- package/dist/semantics/normalize/specialization.d.ts +201 -0
- package/dist/semantics/normalize/specialization.js +1824 -0
- package/dist/semantics/normalize/structural-array-element.d.ts +176 -0
- package/dist/semantics/normalize/structural-array-element.js +700 -0
- package/dist/semantics/normalize/structural-array-read.d.ts +13 -0
- package/dist/semantics/normalize/structural-array-read.js +124 -0
- package/dist/semantics/normalize/structural-callable.d.ts +12 -0
- package/dist/semantics/normalize/structural-callable.js +82 -0
- package/dist/semantics/normalize/structural-creation-order.d.ts +32 -0
- package/dist/semantics/normalize/structural-creation-order.js +111 -0
- package/dist/semantics/normalize/structural-declarations.d.ts +395 -0
- package/dist/semantics/normalize/structural-declarations.js +968 -0
- package/dist/semantics/normalize/structural-declared-body.d.ts +25 -0
- package/dist/semantics/normalize/structural-declared-body.js +147 -0
- package/dist/semantics/normalize/structural-generics.d.ts +56 -0
- package/dist/semantics/normalize/structural-generics.js +120 -0
- package/dist/semantics/normalize/structural-indexed-access.d.ts +11 -0
- package/dist/semantics/normalize/structural-indexed-access.js +126 -0
- package/dist/semantics/normalize/structural-instantiated-member.d.ts +64 -0
- package/dist/semantics/normalize/structural-instantiated-member.js +407 -0
- package/dist/semantics/normalize/structural-joins.d.ts +44 -0
- package/dist/semantics/normalize/structural-joins.js +143 -0
- package/dist/semantics/normalize/structural-layout-relevance.d.ts +29 -0
- package/dist/semantics/normalize/structural-layout-relevance.js +391 -0
- package/dist/semantics/normalize/structural-layout-type.d.ts +11 -0
- package/dist/semantics/normalize/structural-layout-type.js +1468 -0
- package/dist/semantics/normalize/structural-leaves.d.ts +49 -0
- package/dist/semantics/normalize/structural-leaves.js +125 -0
- package/dist/semantics/normalize/structural-local-union.d.ts +13 -0
- package/dist/semantics/normalize/structural-local-union.js +133 -0
- package/dist/semantics/normalize/structural-members.d.ts +26 -0
- package/dist/semantics/normalize/structural-members.js +84 -0
- package/dist/semantics/normalize/structural-mutable-method.d.ts +15 -0
- package/dist/semantics/normalize/structural-mutable-method.js +109 -0
- package/dist/semantics/normalize/structural-parts.d.ts +131 -0
- package/dist/semantics/normalize/structural-parts.js +737 -0
- package/dist/semantics/normalize/structural-receiver.d.ts +66 -0
- package/dist/semantics/normalize/structural-receiver.js +551 -0
- package/dist/semantics/normalize/structural-rules.d.ts +112 -0
- package/dist/semantics/normalize/structural-rules.js +93 -0
- package/dist/semantics/normalize/structural-self-reference.d.ts +150 -0
- package/dist/semantics/normalize/structural-self-reference.js +494 -0
- package/dist/semantics/normalize/structural.d.ts +202 -0
- package/dist/semantics/normalize/structural.js +4218 -0
- package/dist/semantics/normalize/unreduced-type-form.d.ts +41 -0
- package/dist/semantics/normalize/unreduced-type-form.js +53 -0
- package/dist/semantics/normalize/unresolvable-names.d.ts +56 -0
- package/dist/semantics/normalize/unresolvable-names.js +140 -0
- package/dist/semantics/package-sources.d.ts +16 -0
- package/dist/semantics/package-sources.js +365 -0
- package/dist/semantics/program.d.ts +151 -0
- package/dist/semantics/program.js +667 -0
- package/dist/semantics/prototype-install-source-transform.d.ts +4 -0
- package/dist/semantics/prototype-install-source-transform.js +341 -0
- package/dist/semantics/prototype-object-class-source-transform.d.ts +4 -0
- package/dist/semantics/prototype-object-class-source-transform.js +525 -0
- package/dist/semantics/prototype-reparenting.d.ts +50 -0
- package/dist/semantics/prototype-reparenting.js +317 -0
- package/dist/semantics/stable-checker.d.ts +10 -0
- package/dist/semantics/stable-checker.js +148 -0
- package/dist/semantics/subclass-member-overlay-transform.d.ts +35 -0
- package/dist/semantics/subclass-member-overlay-transform.js +1418 -0
- package/dist/semantics/symbol-keyed-expando-source-transform.d.ts +4 -0
- package/dist/semantics/symbol-keyed-expando-source-transform.js +66 -0
- package/dist/semantics/this-constructor-source-transform.d.ts +4 -0
- package/dist/semantics/this-constructor-source-transform.js +122 -0
- package/dist/semantics/uninstantiable-classes.d.ts +22 -0
- package/dist/semantics/uninstantiable-classes.js +75 -0
- package/dist/targets/cpp/balanced-units.d.ts +3 -0
- package/dist/targets/cpp/balanced-units.js +58 -0
- package/dist/targets/cpp/borrowed-call-entry.d.ts +30 -0
- package/dist/targets/cpp/borrowed-call-entry.js +68 -0
- package/dist/targets/cpp/captures.d.ts +68 -0
- package/dist/targets/cpp/captures.js +269 -0
- package/dist/targets/cpp/class-layout.d.ts +313 -0
- package/dist/targets/cpp/class-layout.js +483 -0
- package/dist/targets/cpp/class-properties/computed-method-value.d.ts +25 -0
- package/dist/targets/cpp/class-properties/computed-method-value.js +22 -0
- package/dist/targets/cpp/class-properties/emit-class-properties.d.ts +216 -0
- package/dist/targets/cpp/class-properties/emit-class-properties.js +917 -0
- package/dist/targets/cpp/class-properties/native-prototype.d.ts +11 -0
- package/dist/targets/cpp/class-properties/native-prototype.js +101 -0
- package/dist/targets/cpp/class-ref-transport.d.ts +12 -0
- package/dist/targets/cpp/class-ref-transport.js +32 -0
- package/dist/targets/cpp/conversions.d.ts +3 -0
- package/dist/targets/cpp/conversions.js +2027 -0
- package/dist/targets/cpp/deferral-safety.d.ts +82 -0
- package/dist/targets/cpp/deferral-safety.js +86 -0
- package/dist/targets/cpp/direct-call-receivers.d.ts +37 -0
- package/dist/targets/cpp/direct-call-receivers.js +79 -0
- package/dist/targets/cpp/document.d.ts +74 -0
- package/dist/targets/cpp/document.js +106 -0
- package/dist/targets/cpp/emit-allocation.d.ts +60 -0
- package/dist/targets/cpp/emit-allocation.js +573 -0
- package/dist/targets/cpp/emit-arrays.d.ts +119 -0
- package/dist/targets/cpp/emit-arrays.js +1047 -0
- package/dist/targets/cpp/emit-binding-reference.d.ts +17 -0
- package/dist/targets/cpp/emit-binding-reference.js +120 -0
- package/dist/targets/cpp/emit-bindings.d.ts +158 -0
- package/dist/targets/cpp/emit-bindings.js +769 -0
- package/dist/targets/cpp/emit-buffers.d.ts +156 -0
- package/dist/targets/cpp/emit-buffers.js +573 -0
- package/dist/targets/cpp/emit-callable.d.ts +230 -0
- package/dist/targets/cpp/emit-callable.js +2154 -0
- package/dist/targets/cpp/emit-carrier-members.d.ts +406 -0
- package/dist/targets/cpp/emit-carrier-members.js +1224 -0
- package/dist/targets/cpp/emit-coercion.d.ts +26 -0
- package/dist/targets/cpp/emit-coercion.js +39 -0
- package/dist/targets/cpp/emit-context.d.ts +1882 -0
- package/dist/targets/cpp/emit-context.js +904 -0
- package/dist/targets/cpp/emit-dynamic-properties.d.ts +174 -0
- package/dist/targets/cpp/emit-dynamic-properties.js +1249 -0
- package/dist/targets/cpp/emit-equality.d.ts +39 -0
- package/dist/targets/cpp/emit-equality.js +472 -0
- package/dist/targets/cpp/emit-exceptions.d.ts +104 -0
- package/dist/targets/cpp/emit-exceptions.js +513 -0
- package/dist/targets/cpp/emit-field-owner.d.ts +4 -0
- package/dist/targets/cpp/emit-field-owner.js +27 -0
- package/dist/targets/cpp/emit-in.d.ts +31 -0
- package/dist/targets/cpp/emit-in.js +426 -0
- package/dist/targets/cpp/emit-instanceof.d.ts +19 -0
- package/dist/targets/cpp/emit-instanceof.js +601 -0
- package/dist/targets/cpp/emit-integers.d.ts +68 -0
- package/dist/targets/cpp/emit-integers.js +184 -0
- package/dist/targets/cpp/emit-iterator.d.ts +100 -0
- package/dist/targets/cpp/emit-iterator.js +1137 -0
- package/dist/targets/cpp/emit-json.d.ts +73 -0
- package/dist/targets/cpp/emit-json.js +823 -0
- package/dist/targets/cpp/emit-jsx.d.ts +74 -0
- package/dist/targets/cpp/emit-jsx.js +806 -0
- package/dist/targets/cpp/emit-mixed-binary.d.ts +51 -0
- package/dist/targets/cpp/emit-mixed-binary.js +60 -0
- package/dist/targets/cpp/emit-namespaces.d.ts +101 -0
- package/dist/targets/cpp/emit-namespaces.js +133 -0
- package/dist/targets/cpp/emit-narrowing.d.ts +738 -0
- package/dist/targets/cpp/emit-narrowing.js +3967 -0
- package/dist/targets/cpp/emit-native-equality.d.ts +3 -0
- package/dist/targets/cpp/emit-native-equality.js +14 -0
- package/dist/targets/cpp/emit-native-selection.d.ts +5 -0
- package/dist/targets/cpp/emit-native-selection.js +37 -0
- package/dist/targets/cpp/emit-object-tag.d.ts +4 -0
- package/dist/targets/cpp/emit-object-tag.js +108 -0
- package/dist/targets/cpp/emit-owned-record.d.ts +2 -0
- package/dist/targets/cpp/emit-owned-record.js +15 -0
- package/dist/targets/cpp/emit-presence.d.ts +78 -0
- package/dist/targets/cpp/emit-presence.js +376 -0
- package/dist/targets/cpp/emit-properties.d.ts +105 -0
- package/dist/targets/cpp/emit-properties.js +1640 -0
- package/dist/targets/cpp/emit-record-view.d.ts +20 -0
- package/dist/targets/cpp/emit-record-view.js +354 -0
- package/dist/targets/cpp/emit-return.d.ts +5 -0
- package/dist/targets/cpp/emit-return.js +237 -0
- package/dist/targets/cpp/emit-sum-widening.d.ts +10 -0
- package/dist/targets/cpp/emit-sum-widening.js +69 -0
- package/dist/targets/cpp/emit-tonumber.d.ts +38 -0
- package/dist/targets/cpp/emit-tonumber.js +177 -0
- package/dist/targets/cpp/emit-tostring.d.ts +92 -0
- package/dist/targets/cpp/emit-tostring.js +556 -0
- package/dist/targets/cpp/emit-typeof.d.ts +49 -0
- package/dist/targets/cpp/emit-typeof.js +317 -0
- package/dist/targets/cpp/emit-union-properties.d.ts +181 -0
- package/dist/targets/cpp/emit-union-properties.js +1281 -0
- package/dist/targets/cpp/emit.d.ts +45 -0
- package/dist/targets/cpp/emit.js +2225 -0
- package/dist/targets/cpp/error-types.d.ts +4 -0
- package/dist/targets/cpp/error-types.js +11 -0
- package/dist/targets/cpp/function-source-reads.d.ts +72 -0
- package/dist/targets/cpp/function-source-reads.js +148 -0
- package/dist/targets/cpp/host/atomics.d.ts +25 -0
- package/dist/targets/cpp/host/atomics.js +63 -0
- package/dist/targets/cpp/host/core-globals.d.ts +108 -0
- package/dist/targets/cpp/host/core-globals.js +158 -0
- package/dist/targets/cpp/host/dynamic-argument-members.d.ts +42 -0
- package/dist/targets/cpp/host/dynamic-argument-members.js +61 -0
- package/dist/targets/cpp/host/emit-host-arity.d.ts +139 -0
- package/dist/targets/cpp/host/emit-host-arity.js +232 -0
- package/dist/targets/cpp/host/emit-host-invoke.d.ts +91 -0
- package/dist/targets/cpp/host/emit-host-invoke.js +1105 -0
- package/dist/targets/cpp/host/emit-host-object.d.ts +55 -0
- package/dist/targets/cpp/host/emit-host-object.js +2206 -0
- package/dist/targets/cpp/host/emit-host-properties.d.ts +69 -0
- package/dist/targets/cpp/host/emit-host-properties.js +533 -0
- package/dist/targets/cpp/host/emit-host-reflect.d.ts +4 -0
- package/dist/targets/cpp/host/emit-host-reflect.js +180 -0
- package/dist/targets/cpp/host/emit-host-value.d.ts +120 -0
- package/dist/targets/cpp/host/emit-host-value.js +392 -0
- package/dist/targets/cpp/host/host-members.d.ts +505 -0
- package/dist/targets/cpp/host/host-members.js +819 -0
- package/dist/targets/cpp/host/host-method-aliases.d.ts +30 -0
- package/dist/targets/cpp/host/host-method-aliases.js +76 -0
- package/dist/targets/cpp/host/native-protocols.d.ts +47 -0
- package/dist/targets/cpp/host/native-protocols.js +183 -0
- package/dist/targets/cpp/host/object-protocol.d.ts +351 -0
- package/dist/targets/cpp/host/object-protocol.js +671 -0
- package/dist/targets/cpp/host-namespace-reads.d.ts +83 -0
- package/dist/targets/cpp/host-namespace-reads.js +113 -0
- package/dist/targets/cpp/manifest/capabilities.d.ts +39 -0
- package/dist/targets/cpp/manifest/capabilities.js +1484 -0
- package/dist/targets/cpp/manifest.d.ts +23 -0
- package/dist/targets/cpp/manifest.js +113 -0
- package/dist/targets/cpp/native-error-base.d.ts +38 -0
- package/dist/targets/cpp/native-error-base.js +74 -0
- package/dist/targets/cpp/native-narrowing-transport.d.ts +12 -0
- package/dist/targets/cpp/native-narrowing-transport.js +151 -0
- package/dist/targets/cpp/native-selection-helpers.d.ts +11 -0
- package/dist/targets/cpp/native-selection-helpers.js +46 -0
- package/dist/targets/cpp/native-symbol-keys.d.ts +8 -0
- package/dist/targets/cpp/native-symbol-keys.js +34 -0
- package/dist/targets/cpp/ownership.d.ts +43 -0
- package/dist/targets/cpp/ownership.js +38 -0
- package/dist/targets/cpp/owning-conversion-input.d.ts +14 -0
- package/dist/targets/cpp/owning-conversion-input.js +12 -0
- package/dist/targets/cpp/property-read-claims.d.ts +62 -0
- package/dist/targets/cpp/property-read-claims.js +23 -0
- package/dist/targets/cpp/property-store-claims.d.ts +62 -0
- package/dist/targets/cpp/property-store-claims.js +26 -0
- package/dist/targets/cpp/prototype/emit-prototype-array.d.ts +111 -0
- package/dist/targets/cpp/prototype/emit-prototype-array.js +602 -0
- package/dist/targets/cpp/prototype/emit-prototype-date.d.ts +133 -0
- package/dist/targets/cpp/prototype/emit-prototype-date.js +515 -0
- package/dist/targets/cpp/prototype/emit-prototype-error.d.ts +13 -0
- package/dist/targets/cpp/prototype/emit-prototype-error.js +54 -0
- package/dist/targets/cpp/prototype/emit-prototype-invoke.d.ts +34 -0
- package/dist/targets/cpp/prototype/emit-prototype-invoke.js +1003 -0
- package/dist/targets/cpp/prototype/emit-prototype-iterator.d.ts +47 -0
- package/dist/targets/cpp/prototype/emit-prototype-iterator.js +250 -0
- package/dist/targets/cpp/prototype/emit-prototype-promise.d.ts +46 -0
- package/dist/targets/cpp/prototype/emit-prototype-promise.js +143 -0
- package/dist/targets/cpp/prototype/emit-prototype-regexp.d.ts +335 -0
- package/dist/targets/cpp/prototype/emit-prototype-regexp.js +853 -0
- package/dist/targets/cpp/prototype/emit-prototype-string.d.ts +42 -0
- package/dist/targets/cpp/prototype/emit-prototype-string.js +252 -0
- package/dist/targets/cpp/prototype/prototype-method-reads.d.ts +25 -0
- package/dist/targets/cpp/prototype/prototype-method-reads.js +182 -0
- package/dist/targets/cpp/reactive-dependencies.d.ts +140 -0
- package/dist/targets/cpp/reactive-dependencies.js +432 -0
- package/dist/targets/cpp/reactive-origins.d.ts +44 -0
- package/dist/targets/cpp/reactive-origins.js +82 -0
- package/dist/targets/cpp/records.d.ts +277 -0
- package/dist/targets/cpp/records.js +2427 -0
- package/dist/targets/cpp/recursive-containers.d.ts +43 -0
- package/dist/targets/cpp/recursive-containers.js +144 -0
- package/dist/targets/cpp/regexp-types.d.ts +56 -0
- package/dist/targets/cpp/regexp-types.js +59 -0
- package/dist/targets/cpp/substrate.d.ts +125 -0
- package/dist/targets/cpp/substrate.js +12 -0
- package/dist/targets/cpp/translation-unit.d.ts +219 -0
- package/dist/targets/cpp/translation-unit.js +2063 -0
- package/dist/targets/cpp/types.d.ts +280 -0
- package/dist/targets/cpp/types.js +1135 -0
- package/dist/targets/cpp/virtual-methods.d.ts +95 -0
- package/dist/targets/cpp/virtual-methods.js +264 -0
- package/package.json +95 -0
- package/src/targets/cpp/runtime/gea_dynamic_proxy.h +824 -0
- package/src/targets/cpp/runtime/gea_eval.h +1376 -0
- package/src/targets/cpp/runtime/gea_native_class_prototype.h +44 -0
- package/src/targets/cpp/runtime/gea_runtime.h +29222 -0
- package/src/targets/cpp/runtime/gea_runtime_builtins.cpp +55 -0
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import type { DeclarationId } from '../../identity/ids.js';
|
|
3
|
+
import type { StructuralAccessor } from '../model/structural-types.js';
|
|
4
|
+
import { type ParameterBindingCensus } from './parameter-bindings.js';
|
|
5
|
+
import { type ProgramReachability } from './reachability.js';
|
|
6
|
+
/**
|
|
7
|
+
* The type of the value a declaration binds, asked of the declaration's own
|
|
8
|
+
* name rather than of the declaration node.
|
|
9
|
+
*
|
|
10
|
+
* The two differ, and the difference is the point: a node's type at its own
|
|
11
|
+
* position can be the *declared* type of the thing being defined, while the
|
|
12
|
+
* symbol its name introduces carries what a reader of that name receives. For
|
|
13
|
+
* a method those coincide; for anything whose name is introduced by a
|
|
14
|
+
* declaration the checker treats specially they do not, and the name is the
|
|
15
|
+
* authority on what the binding holds. A class is the motivating case: the
|
|
16
|
+
* checker's own type AT a class declaration node is its *instance* type, and
|
|
17
|
+
* only asking after the class's own name symbol recovers the constructor.
|
|
18
|
+
*
|
|
19
|
+
* A function expression or arrow function is excluded from that: for both,
|
|
20
|
+
* `ts.getNameOfDeclaration` never reads the node's own name (a *named*
|
|
21
|
+
* function expression's name included) and instead always defers to
|
|
22
|
+
* `getAssignedName`, which walks up to whatever the value is being stored
|
|
23
|
+
* into -- a variable declarator, a property assignment, a binding element --
|
|
24
|
+
* and answers with THAT construct's own declared type. For
|
|
25
|
+
* `activeRecorder.ondataavailable = (event) => {}` this resolves to the
|
|
26
|
+
* property's declared `Handler | null`, not the arrow's own
|
|
27
|
+
* `(event: Event) => void`. Handing that union back as a *callable
|
|
28
|
+
* allocation's* own shape is the same defect `accessorSignatureOf`'s doc
|
|
29
|
+
* comment already names for accessors ("reading the property's type there
|
|
30
|
+
* hands the callable carrier a scalar"): one call to
|
|
31
|
+
* `OrdinaryFunctionCreate`/`InstantiateArrowFunctionExpression` allocates a
|
|
32
|
+
* plain callable independent of wherever it is later stored, and an optional
|
|
33
|
+
* or nullable wrapper is a fact about that later BINDING, never about this
|
|
34
|
+
* value -- so it must not reach `allocations.ts`'s `shape` field for the
|
|
35
|
+
* allocation itself. A method or a plain function declaration never takes
|
|
36
|
+
* this path: `getNameOfDeclaration` reads their OWN name directly, so no
|
|
37
|
+
* assignment target's type can substitute for theirs.
|
|
38
|
+
*
|
|
39
|
+
* `null` when the declaration introduces no name the checker resolves to a
|
|
40
|
+
* symbol, which is the caller's cue to fall back to the node's own type --
|
|
41
|
+
* exactly what a function expression or arrow function now always does.
|
|
42
|
+
*/
|
|
43
|
+
export declare const declaredValueTypeOf: (checker: ts.TypeChecker, node: ts.Declaration) => ts.Type | null;
|
|
44
|
+
/**
|
|
45
|
+
* The type of the FUNCTION LITERAL a declaration is initialized with, when the
|
|
46
|
+
* declaration's own annotation is an overload set and the literal is not.
|
|
47
|
+
*
|
|
48
|
+
* `class Context { json: JSONRespond = (object, arg?, headers?) => {...} }`
|
|
49
|
+
* (hono's `context.ts`) is the shape. `JSONRespond` declares two call
|
|
50
|
+
* signatures differing at a shared parameter -- `status?: U` in one,
|
|
51
|
+
* `init?: ResponseOrInit<U>` in the other -- so `sharedAbiOf` (derive.ts)
|
|
52
|
+
* rightly finds no single convention and `widestSubsumingAbi` (host-abi.ts)
|
|
53
|
+
* rightly declines to widen, since that only forgives a TRAILING-optional
|
|
54
|
+
* difference and not a differing type at a shared position. The member then
|
|
55
|
+
* carries `unresolved(no primitive joining 2 overload signatures into one
|
|
56
|
+
* calling convention)`.
|
|
57
|
+
*
|
|
58
|
+
* But nothing with two conventions is ever allocated here. A function or arrow
|
|
59
|
+
* LITERAL cannot itself be overloaded -- only a `function` declaration merges
|
|
60
|
+
* that way -- so the checker types this initializer as exactly one signature,
|
|
61
|
+
* whose second parameter is the union `U | ResponseOrInit<U>` the body already
|
|
62
|
+
* discriminates on at runtime (`typeof arg === 'number' ? ...`). One physical
|
|
63
|
+
* convention, which this backend does model.
|
|
64
|
+
*
|
|
65
|
+
* This is `declaredValueTypeOf`'s own rule one level out. That function already
|
|
66
|
+
* refuses to let a storage slot's declared type reach a callable ALLOCATION's
|
|
67
|
+
* shape, for the reason its comment gives: the allocation is independent of
|
|
68
|
+
* wherever the value is later stored. The same is true of a member whose
|
|
69
|
+
* initializer is that allocation -- so the member's physical type is the
|
|
70
|
+
* literal's, not the annotation's.
|
|
71
|
+
*
|
|
72
|
+
* Sound because the checker has already proved the literal assignable to every
|
|
73
|
+
* declared overload; that is what let the program typecheck at all. This reads
|
|
74
|
+
* back the concrete answer the checker computed for the literal rather than
|
|
75
|
+
* inventing one. `null` whenever either half of the premise fails -- no
|
|
76
|
+
* function-literal initializer, or a declared type that was never an overload
|
|
77
|
+
* set -- so nothing that already resolves is re-derived.
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* The single physical type of a node that DECLARES a binding annotated with an
|
|
81
|
+
* overloaded type, or `null` when the node is not one.
|
|
82
|
+
*
|
|
83
|
+
* `physicalInitializerTypeOf` asks this of a declaration whose type is already
|
|
84
|
+
* in hand; this is the same question asked of a bare node, which is what
|
|
85
|
+
* `structural.ts`'s `typeAt` has -- the BINDING's own type, as opposed to the
|
|
86
|
+
* ALLOCATION's, which `valueTypeAt` answers from the initializer directly. Both
|
|
87
|
+
* have to agree: hono's `export const parseBody: ParseBody = async (...)`
|
|
88
|
+
* allocated one async arrow and bound it under `ParseBody`'s two overloads, so
|
|
89
|
+
* the value had one convention and the name it is read through had none.
|
|
90
|
+
*/
|
|
91
|
+
export declare const physicalOverloadTypeAt: (checker: ts.TypeChecker, node: ts.Node, parameters?: ParameterBindingCensus) => ts.Type | null;
|
|
92
|
+
export declare const physicalInitializerTypeOf: (checker: ts.TypeChecker, declaration: ts.Declaration, declared: ts.Type, parameters?: ParameterBindingCensus) => ts.Type | null;
|
|
93
|
+
/**
|
|
94
|
+
* The type a `new String(x)` allocation actually has, when a declaration or a
|
|
95
|
+
* same-module reference to it is annotated with something else.
|
|
96
|
+
*
|
|
97
|
+
* hono's `utils/html.ts`: `const escapedString = new String(value) as
|
|
98
|
+
* HtmlEscapedString`. The declared/annotated type is `HtmlEscapedString =
|
|
99
|
+
* string & HtmlEscaped`, which `deriveIntersection` (representation/derive.ts)
|
|
100
|
+
* deliberately collapses to plain `string` -- correct for the alias in
|
|
101
|
+
* general, and wrong for the one value this expression actually allocates: a
|
|
102
|
+
* String WRAPPER OBJECT with identity, not a primitive. `as` changes only the
|
|
103
|
+
* STATIC view a reader gets; it does not change what `new String(...)`
|
|
104
|
+
* constructs at runtime.
|
|
105
|
+
*
|
|
106
|
+
* `physicalInitializerTypeOf`'s exact shape one level over: that function
|
|
107
|
+
* recovers the one convention a function LITERAL actually has past an
|
|
108
|
+
* overloaded annotation; this recovers the one OBJECT a `new String(...)`
|
|
109
|
+
* expression actually allocates past a widened/cast annotation. Both exist
|
|
110
|
+
* because the checker's type at the BINDING can legitimately differ from the
|
|
111
|
+
* type of the value physically stored there, and both must be asked
|
|
112
|
+
* uniformly at every site that reads the binding back, not only at its
|
|
113
|
+
* declaration -- `structural.ts`'s `typeAt` is exactly that uniform point,
|
|
114
|
+
* for the same reason it already calls `physicalOverloadTypeAt` there. A
|
|
115
|
+
* held cell and every read of it must agree, or a store/read pair would
|
|
116
|
+
* disagree about the binding's own carrier for no reason the program stated.
|
|
117
|
+
*
|
|
118
|
+
* Deliberately narrow, for the identical blast-radius reason
|
|
119
|
+
* `physicalInitializerTypeOf`'s own comment gives for its narrower cases: this
|
|
120
|
+
* does not see through an arbitrary `as`-cast pattern. It fires only when the
|
|
121
|
+
* unwrapped initializer is itself a `new` expression whose resolved type's
|
|
122
|
+
* symbol is literally named `String`, declared ambiently. `Number`/`Boolean`/
|
|
123
|
+
* every other constructor is untouched.
|
|
124
|
+
*
|
|
125
|
+
* A same-module IDENTIFIER reference reaches the same answer by walking to
|
|
126
|
+
* its declaring `VariableDeclaration`, gated to `const` only.
|
|
127
|
+
*/
|
|
128
|
+
export declare const physicalStringObjectTypeAt: (checker: ts.TypeChecker, node: ts.Node, parameters?: ParameterBindingCensus) => ts.Type | null;
|
|
129
|
+
/**
|
|
130
|
+
* The signature a get/set accessor declaration implements, or `null` for a node
|
|
131
|
+
* that is not one.
|
|
132
|
+
*
|
|
133
|
+
* An accessor's name symbol is the *property* it implements, so its type is
|
|
134
|
+
* that property's -- `number` for `get value(): number`. What is allocated at
|
|
135
|
+
* an accessor declaration is the accessor function, whose type is its own
|
|
136
|
+
* signature. Reading the property's type there hands the callable carrier a
|
|
137
|
+
* scalar, and a call through it then has no convention to select at all.
|
|
138
|
+
*/
|
|
139
|
+
export declare const accessorSignatureOf: (checker: ts.TypeChecker, node: ts.Declaration) => ts.Signature | null;
|
|
140
|
+
/**
|
|
141
|
+
* The field a get/set accessor PAIR does nothing but forward to, when both
|
|
142
|
+
* halves are exactly one statement long and agree on the identical access --
|
|
143
|
+
* `get image() { return this.source.data }` / `set image(value) {
|
|
144
|
+
* this.source.data = value }` (three's `Texture`) is the motivating shape.
|
|
145
|
+
* `null` for anything that is not provably this exact shape.
|
|
146
|
+
*
|
|
147
|
+
* This states only the SYNTACTIC fact: which access both bodies name, and
|
|
148
|
+
* that the setter's whole right-hand side is its own parameter untouched --
|
|
149
|
+
* nothing here asks whether the target the access names is itself a plain
|
|
150
|
+
* field, whether it even exists, or whether some sibling class overrides
|
|
151
|
+
* either half differently. Those are per-owner, per-family questions that
|
|
152
|
+
* need the checker and the class family's own closure, and belong beside the
|
|
153
|
+
* caller that already asks them one owner at a time --
|
|
154
|
+
* `accessorPassthroughDataMemberOf` (`flow/source-class-data.ts`), next to
|
|
155
|
+
* `isSourceDataDeclaration`, which this function's result is deliberately
|
|
156
|
+
* NOT allowed to bypass: a target that is itself an accessor still refuses.
|
|
157
|
+
*
|
|
158
|
+
* Deliberately narrow, for the same reason `physicalStringObjectTypeAt` above
|
|
159
|
+
* gives: guessing at a looser shape (a body with an early return, a
|
|
160
|
+
* multi-statement setter, a right-hand side that merely INCLUDES the
|
|
161
|
+
* parameter) risks calling something a passthrough that quietly does more,
|
|
162
|
+
* which would make a read of the alias silently skip real behavior.
|
|
163
|
+
*/
|
|
164
|
+
export declare const accessorPassthroughAliasOf: (getter: ts.GetAccessorDeclaration, setter: ts.SetAccessorDeclaration) => {
|
|
165
|
+
readonly receiverField: string | null;
|
|
166
|
+
readonly key: string;
|
|
167
|
+
} | null;
|
|
168
|
+
/**
|
|
169
|
+
* The MEMBER a passthrough accessor pair forwards to -- the storage half of
|
|
170
|
+
* the syntactic fact `accessorPassthroughAliasOf` states.
|
|
171
|
+
*
|
|
172
|
+
* three's `Texture` writes `get image() { return this.source.data }` and the
|
|
173
|
+
* matching setter, and annotates the GETTER `@type {?Object}`. That annotation
|
|
174
|
+
* is an upper bound on what may be read back, never a statement about what the
|
|
175
|
+
* slot holds -- the slot IS `Source.data`, and nothing else can be. But
|
|
176
|
+
* `Object | null` is not `any`/`void`/`never`, so every authority gated on
|
|
177
|
+
* `isUnusableEvidence` treats it as a final answer and never asks the census
|
|
178
|
+
* that knows better. `Texture.image` is read dozens of times across
|
|
179
|
+
* `WebGLTextures.js` alone, and each read boxed.
|
|
180
|
+
*
|
|
181
|
+
* The receiver type is taken from the getter's OWN access node rather than
|
|
182
|
+
* rebuilt from the owning class's symbol: the node is what the program
|
|
183
|
+
* actually wrote, the checker already types it in its real lexical position,
|
|
184
|
+
* and reconstructing an instance type from a class declaration would answer a
|
|
185
|
+
* different question for a constructor function or a class expression.
|
|
186
|
+
*
|
|
187
|
+
* Fails closed on a target that is itself an accessor. Forwarding to a second
|
|
188
|
+
* accessor is not storage -- it is another body that may do anything -- and
|
|
189
|
+
* admitting it is how a passthrough proof turns into a chain of guesses.
|
|
190
|
+
*/
|
|
191
|
+
export declare const accessorPassthroughMemberTargetOf: (checker: ts.TypeChecker, symbol: ts.Symbol) => {
|
|
192
|
+
readonly symbol: ts.Symbol;
|
|
193
|
+
readonly declaration: ts.Declaration;
|
|
194
|
+
} | null;
|
|
195
|
+
/**
|
|
196
|
+
* The one signature an OVERLOADED function or method's implementation
|
|
197
|
+
* declares, or `null` when the node is not an overload set's implementation.
|
|
198
|
+
*
|
|
199
|
+
* `class HonoRequest { param(key: string): string; param(): Record<...>;
|
|
200
|
+
* param(key?: string): unknown { ... } }` (hono's `request.ts`) is the shape,
|
|
201
|
+
* and it is `physicalInitializerTypeOf`'s twin at TypeScript's other spelling
|
|
202
|
+
* of the same thing. Asked through the symbol, the type is every OVERLOAD
|
|
203
|
+
* signature and never the implementation's -- that is the checker's rule, and
|
|
204
|
+
* it is right for call resolution -- so `sharedAbiOf` (derive.ts) sees N
|
|
205
|
+
* conventions and refuses. But the implementation is the only body that ever
|
|
206
|
+
* runs, and it declares exactly one; N is a fact about how the method may be
|
|
207
|
+
* CALLED, never about the single function that exists.
|
|
208
|
+
*
|
|
209
|
+
* `accessorSignatureOf` above already reaches past the symbol for the same
|
|
210
|
+
* class of reason (an accessor's name symbol is the property, not the
|
|
211
|
+
* function), and this asks the checker the identical way -- from the
|
|
212
|
+
* declaration node rather than the symbol.
|
|
213
|
+
*
|
|
214
|
+
* Resolve the body's declaration from the symbol: a call-site value declaration
|
|
215
|
+
* can be the first overload, which has no body of its own. The same function
|
|
216
|
+
* object still implements the symbol's one body.
|
|
217
|
+
*
|
|
218
|
+
* ⚠ A second DECLARATION is not a second overload. TypeScript's JS expando
|
|
219
|
+
* inference makes `SourceNode.fromStringWithSourceMap = function ...` a
|
|
220
|
+
* declaration of the `SourceNode` SYMBOL, so a pre-class constructor function
|
|
221
|
+
* with any static on it has two declarations and no overloads at all. Reading
|
|
222
|
+
* the signature off its body then returns the CALL signature alone and throws
|
|
223
|
+
* away the construct signature TS's JS inference attached to the symbol -- the
|
|
224
|
+
* declaration's cell became `function-value-dispatch` while every reference
|
|
225
|
+
* stayed `function-and-constructor`, which is 96 rows of tsc's self-compile
|
|
226
|
+
* concentrated in the `source-map` packages, and a two-authorities defect of
|
|
227
|
+
* exactly the kind this compiler exists to avoid. So the set is recognized by
|
|
228
|
+
* an actual overload being present: a method/function declaration with NO
|
|
229
|
+
* body, which is the only thing an overload signature can be.
|
|
230
|
+
*/
|
|
231
|
+
export declare const implementationSignatureOf: (checker: ts.TypeChecker, node: ts.Declaration) => ts.Signature | null;
|
|
232
|
+
/**
|
|
233
|
+
* The signature a `?`-marked class METHOD implements, when it has a real
|
|
234
|
+
* body -- or `null` when the node is not one.
|
|
235
|
+
*
|
|
236
|
+
* `bar?(): string { ... }` inside a class is not a member that may or may
|
|
237
|
+
* not be defined: `DefineMethod` runs unconditionally during
|
|
238
|
+
* `ClassDefinitionEvaluation`, so the method exists on every instance the
|
|
239
|
+
* moment the class is instantiated. The `?` states a fact about READING
|
|
240
|
+
* `bar` through a structural interface that does not require it -- a
|
|
241
|
+
* caller who only knows the interface may see `undefined` -- never a fact
|
|
242
|
+
* about whether THIS declaration's own function object gets created.
|
|
243
|
+
*
|
|
244
|
+
* `declaredValueTypeOf` (above) asks the checker for the member SYMBOL's
|
|
245
|
+
* type, and for an optional member the checker answers `T | undefined`
|
|
246
|
+
* whether the query is symbol- or node-based -- `getTypeOfSymbolAtLocation`
|
|
247
|
+
* and `getTypeAtLocation` on the declaration itself agree, verified
|
|
248
|
+
* directly against the checker rather than assumed. That answer is
|
|
249
|
+
* CORRECT for "what does reading this member give you" and simply the
|
|
250
|
+
* wrong question for an ALLOCATION's own shape: `class-lifecycle.ts`'s
|
|
251
|
+
* `allocateFunctionObject` asks `valueTypeAt` for what `DefineMethod`
|
|
252
|
+
* creates, not for what a later read of the member sees.
|
|
253
|
+
*
|
|
254
|
+
* `accessorSignatureOf` and `implementationSignatureOf` above already
|
|
255
|
+
* reach past the symbol for the identical reason (an accessor's/overload
|
|
256
|
+
* set's symbol answers a different question than the one physical function
|
|
257
|
+
* being allocated); this is the same move for the third case `questionToken`
|
|
258
|
+
* introduces. Gated on there being a body, so an interface or `.d.ts`
|
|
259
|
+
* member SIGNATURE (`ts.isMethodSignature`) is untouched: that node
|
|
260
|
+
* allocates nothing at all, and `?` there states exactly what it says --
|
|
261
|
+
* an implementer MAY omit the member.
|
|
262
|
+
*/
|
|
263
|
+
export declare const optionalMethodSignatureOf: (checker: ts.TypeChecker, node: ts.Declaration) => ts.Signature | null;
|
|
264
|
+
/**
|
|
265
|
+
* The accessor pair behind an *object literal's* member, or `null`.
|
|
266
|
+
*
|
|
267
|
+
* Restricted to object literals on purpose. A class accessor is installed by a
|
|
268
|
+
* class-evaluation event and read back from the class layout
|
|
269
|
+
* (`projection/classes.ts`), so naming it here as well would be a second
|
|
270
|
+
* authority over one member. An accessor declared in an interface or a `.d.ts`
|
|
271
|
+
* has no body at all, so there is nothing for a reader to call and it stays an
|
|
272
|
+
* ordinary member of a shape the host implements.
|
|
273
|
+
*/
|
|
274
|
+
export declare const literalAccessorOf: (symbol: ts.Symbol, identities: {
|
|
275
|
+
readonly declarationIdOf: (declaration: ts.Declaration) => DeclarationId;
|
|
276
|
+
}) => StructuralAccessor | null;
|
|
277
|
+
/**
|
|
278
|
+
* The one signature an OVERLOADED CONSTRUCTOR's implementation declares, or
|
|
279
|
+
* `null` when the class does not overload its constructor.
|
|
280
|
+
*
|
|
281
|
+
* `implementationSignatureOf` above states the rule; this is the same fact at
|
|
282
|
+
* TypeScript's other spelling of it. `class Long { constructor(low: number,
|
|
283
|
+
* high?: number, unsigned?: boolean); constructor(value: bigint, unsigned?:
|
|
284
|
+
* boolean); constructor(value: string, unsigned?: boolean); constructor(
|
|
285
|
+
* lowOrValue: number | bigint | string = 0, highOrUnsigned?: number | boolean,
|
|
286
|
+
* unsigned?: boolean) { ... } }` (bson's `long.ts`) declares three ways to
|
|
287
|
+
* CALL `new Long`, and exactly one frame the body runs with. `sharedAbiOf`
|
|
288
|
+
* (derive.ts), asked for a convention the three share, correctly finds none
|
|
289
|
+
* and refuses -- and refusing is wrong here for the same reason it was wrong
|
|
290
|
+
* for a method: the three are views of one physical constructor, and the
|
|
291
|
+
* implementation is the one that states its frame.
|
|
292
|
+
*
|
|
293
|
+
* A constructor has no name, so the symbol test `implementationSignatureOf`
|
|
294
|
+
* uses cannot be spelled here. The class's own member list is the same
|
|
295
|
+
* question asked where it can be answered: an overload set is precisely a
|
|
296
|
+
* class carrying more than one `ConstructorDeclaration`, of which at most one
|
|
297
|
+
* has a body.
|
|
298
|
+
*
|
|
299
|
+
* Gated on the class declaring no type parameters. `getSignatureFromDeclaration`
|
|
300
|
+
* answers from the declaration, so its signature is the UNINSTANTIATED one;
|
|
301
|
+
* for a generic class that would silently drop the instantiation the
|
|
302
|
+
* constructor type was reached through. Such a class keeps refusing exactly as
|
|
303
|
+
* it does today rather than being answered with the wrong frame.
|
|
304
|
+
*/
|
|
305
|
+
export declare const constructorImplementationSignatureOf: (checker: ts.TypeChecker, declaration: ts.Node) => ts.Signature | null;
|
|
306
|
+
/**
|
|
307
|
+
* The source of a mapped type that changes only MODIFIERS -- `Mutable<T>`,
|
|
308
|
+
* `Readonly<T>` -- or `null` for every mapped type that changes what the
|
|
309
|
+
* object holds.
|
|
310
|
+
*
|
|
311
|
+
* `type Mutable<T extends object> = { -readonly [K in keyof T]: T[K] }`
|
|
312
|
+
* (tsc's `utilities.ts`) states the same storage as `T`: `readonly` is a
|
|
313
|
+
* checker-side permission, not a physical fact, and every field keeps its own
|
|
314
|
+
* key and its own type. So `Mutable<Node>` IS `Node`, and walking it as a
|
|
315
|
+
* fresh anonymous object was not merely wasteful -- it re-entered the alias
|
|
316
|
+
* once per nested instantiation and refused with "type alias Mutable
|
|
317
|
+
* re-entered with no equivalent active instantiation", 4,503 unmet
|
|
318
|
+
* obligations on the tsc self-compile, all of them behind
|
|
319
|
+
* `nodeFactory.ts`'s `update<T extends Node>(updated: Mutable<T>, original:
|
|
320
|
+
* T)`.
|
|
321
|
+
*
|
|
322
|
+
* Every other mapped type is refused here, by construction rather than by a
|
|
323
|
+
* name list:
|
|
324
|
+
*
|
|
325
|
+
* - `Partial<T>`/`Required<T>` carry a `?` modifier, which IS physical (a
|
|
326
|
+
* presence bit), so a question token of either sign disqualifies.
|
|
327
|
+
* - `Pick<T, K>`/`Record<K, V>` constrain the key variable to something other
|
|
328
|
+
* than `keyof <source>`, so they change the key set.
|
|
329
|
+
* - A remapped key (`as`) changes the names, and a body that is anything but
|
|
330
|
+
* the identity `T[K]` changes the values.
|
|
331
|
+
*
|
|
332
|
+
* Answered through the ALIAS's own type arguments: an instantiation's type
|
|
333
|
+
* arguments are where the source actually is (the mapped type's own instance
|
|
334
|
+
* carries the substitution internally, and the checker does not publish it).
|
|
335
|
+
* A mapped type reached without an alias keeps the general path.
|
|
336
|
+
*/
|
|
337
|
+
export declare const modifierOnlyMappedSourceOf: (type: ts.Type) => ts.Type | null;
|
|
338
|
+
/**
|
|
339
|
+
* What the IMPLEMENTERS of a declared member prove about it, keyed on the
|
|
340
|
+
* declared member's own symbol.
|
|
341
|
+
*
|
|
342
|
+
* `literalAccessorOf` above answers for a literal laid out as ITSELF. This
|
|
343
|
+
* answers the other case -- a literal laid out as a contextual DECLARED type --
|
|
344
|
+
* for the two questions whose answer lives in the implementation rather than in
|
|
345
|
+
* the declaration, and it answers both from ONE walk because both are the same
|
|
346
|
+
* lookup: which literal members implement which declared member.
|
|
347
|
+
*
|
|
348
|
+
* - `accessorBodiesOf`: `interface C { get next(): T }` has no body, so the
|
|
349
|
+
* interface's member is ordinary data of a shape the host implements, and
|
|
350
|
+
* the implementing literal's `get next() { ... }` had nowhere to install its
|
|
351
|
+
* body -- `producers/allocations.ts` refuses that by name rather than
|
|
352
|
+
* allocating a record with an unset callable slot.
|
|
353
|
+
* - `implementationReadsReceiver`: a `MethodSignature` has no body, so there is
|
|
354
|
+
* no `this`-reading body to gate a receiver on the way an object literal's
|
|
355
|
+
* own method is gated. The implementers have one. Without this, the SPELLING
|
|
356
|
+
* of the declaration decided the calling convention: the literal's
|
|
357
|
+
* `next() { return this.label }` took a receiver and the interface member it
|
|
358
|
+
* satisfies took none, and storing one into the other is a conversion between
|
|
359
|
+
* two conventions that C++ does not have.
|
|
360
|
+
*
|
|
361
|
+
* Keyed on the declared member's own DECLARATION (`declaredMemberKeyOf` below,
|
|
362
|
+
* which says why a symbol is not a stable identity for one member), and global,
|
|
363
|
+
* for one reason each:
|
|
364
|
+
*
|
|
365
|
+
* - `RecordAccessor.getter` is one `FunctionId` and an accessor occupies no
|
|
366
|
+
* storage, so "is this member an accessor" is a fact about the TYPE while
|
|
367
|
+
* "whose body backs it" is a fact about the ALLOCATION. Keying off the layout
|
|
368
|
+
* site would silently hand every allocation the first implementer's body,
|
|
369
|
+
* because shapes are interned by type; putting the bodies in the interning
|
|
370
|
+
* key would mint two shapes for one declared type, which then could not
|
|
371
|
+
* convert to each other though the program says they are the same type.
|
|
372
|
+
* - so the only sound answer is a program-wide one that REFUSES when two
|
|
373
|
+
* implementers of one named type disagree. A conflicted member is left out
|
|
374
|
+
* entirely, which returns it to the named refusal -- fail-closed, never
|
|
375
|
+
* "whichever was walked first".
|
|
376
|
+
*
|
|
377
|
+
* Why a census and not a branch: granting EVERY interface method a receiver is
|
|
378
|
+
* a measured regression (`structural-receiver.ts` records it, twice) -- it costs
|
|
379
|
+
* `overload-set-as-value.ts` and `control-flow-structural-view.ts`, whose
|
|
380
|
+
* members no implementer reads a receiver for. The proof has to come from an
|
|
381
|
+
* implementation, which is what this supplies.
|
|
382
|
+
*
|
|
383
|
+
* Matched on the contextual type's own property SYMBOL, never on the written
|
|
384
|
+
* name, so a computed well-known-symbol member is tested exactly as a written
|
|
385
|
+
* one is.
|
|
386
|
+
*/
|
|
387
|
+
export interface DeclaredMemberCensus {
|
|
388
|
+
readonly accessorBodiesOf: (symbol: ts.Symbol) => StructuralAccessor | null;
|
|
389
|
+
readonly implementationReadsReceiver: (symbol: ts.Symbol) => boolean;
|
|
390
|
+
readonly declaredMemberImplementedBy: (name: ts.PropertyName) => ts.Symbol | null;
|
|
391
|
+
}
|
|
392
|
+
export declare const emptyDeclaredMemberCensus: DeclaredMemberCensus;
|
|
393
|
+
export declare const censusDeclaredMembers: (checker: ts.TypeChecker, sourceFiles: readonly ts.SourceFile[], identities: {
|
|
394
|
+
readonly declarationIdOf: (declaration: ts.Declaration) => DeclarationId;
|
|
395
|
+
}, readsReceiver: (body: ts.Node) => boolean, reachable: ProgramReachability) => DeclaredMemberCensus;
|