@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,504 @@
|
|
|
1
|
+
import type { PackageSource } from './package-sources.js';
|
|
2
|
+
import type { CommonJsWrapperDeclaration, HostNativeTypeDeclaration, HostOwnedDeclaration } from '../plugins/model.js';
|
|
3
|
+
import { type HostMethodBindingTable } from './host-methods.js';
|
|
4
|
+
import type { DeclarationId, FunctionId, NodeId, OperationFamily, RegionId, StructuralTypeId } from '../identity/ids.js';
|
|
5
|
+
import type { DiagnosticEvidence, DiagnosticLocation } from '../diagnostics/model.js';
|
|
6
|
+
import type { TypedArrayElementDomain } from '../representation/model.js';
|
|
7
|
+
import type { KeyedCollectionFamily, RegExpDeclarationKind, StandardBufferKind } from '../representation/policies.js';
|
|
8
|
+
import type { SemanticGraph } from './model/graph.js';
|
|
9
|
+
import type { FamilyProducer } from './normalize/contribution.js';
|
|
10
|
+
import type { ProducerContext } from './normalize/producer-context.js';
|
|
11
|
+
import { type ClassCopyKey } from './normalize/structural.js';
|
|
12
|
+
import { type DeadTypeofGuardCensus } from './normalize/dead-typeof-guards.js';
|
|
13
|
+
import { type CensusRefusal } from './normalize/census-refusal.js';
|
|
14
|
+
import type { CellFactsPublication } from './normalize/cells/index.js';
|
|
15
|
+
import type { StructuralDisagreement, StructuralFormViolation } from './normalize/structural-rules.js';
|
|
16
|
+
import type { DiagnosticSourcePreparationAudit } from './diagnostic-source-preparation.js';
|
|
17
|
+
import type { HostProtocolBinding } from './host-protocols.js';
|
|
18
|
+
/**
|
|
19
|
+
* The frontend boundary.
|
|
20
|
+
*
|
|
21
|
+
* This is the last place a TypeScript AST exists. Everything it returns is
|
|
22
|
+
* target-neutral and sealed, so no later layer can reach back and answer a
|
|
23
|
+
* question the frontend already answered differently.
|
|
24
|
+
*
|
|
25
|
+
* Producers are supplied by the caller rather than imported here, so installing
|
|
26
|
+
* or withholding a family is an explicit decision visible at the call site --
|
|
27
|
+
* and so a family with no producer is reported by the census instead of quietly
|
|
28
|
+
* contributing nothing.
|
|
29
|
+
*/
|
|
30
|
+
export interface FrontendInput {
|
|
31
|
+
/** Package checkouts prepared by the project loader; the compiler discovers their implementation entries. */
|
|
32
|
+
readonly packageSources?: readonly PackageSource[];
|
|
33
|
+
readonly declarationModules?: ReadonlySet<string>;
|
|
34
|
+
readonly dynamicFallback?: boolean;
|
|
35
|
+
readonly hostMethodBindings?: HostMethodBindingTable;
|
|
36
|
+
/** Exact host declarations eligible for checker-derived TypedArray inheritance. */
|
|
37
|
+
readonly hostTypedArrayDeclarations?: readonly HostOwnedDeclaration[];
|
|
38
|
+
readonly rootFileNames: readonly string[];
|
|
39
|
+
/** The project file defining this program, or `null` to use this compiler's defaults alone. */
|
|
40
|
+
readonly projectFileName?: string | null;
|
|
41
|
+
/** Built from the context once the program exists, so producers share one counter. */
|
|
42
|
+
readonly producers: (context: ProducerContext) => readonly FamilyProducer[];
|
|
43
|
+
/**
|
|
44
|
+
* The declared type names the installed hosts own, to the type their runtime
|
|
45
|
+
* carries values of each in (`PluginCapabilities.nativeTypes`).
|
|
46
|
+
*
|
|
47
|
+
* Supplied rather than known, for the same reason `producers` is: a compiler
|
|
48
|
+
* that carried this table itself would be hand-maintaining one library's
|
|
49
|
+
* object model inside a language compiler. Absent, nothing binds by name and
|
|
50
|
+
* this file behaves exactly as it did.
|
|
51
|
+
*/
|
|
52
|
+
readonly nativeTypes?: ReadonlyMap<string, string>;
|
|
53
|
+
/** Exact host-owned native type declarations; see `PluginCapabilities.nativeTypesByDeclaration`. */
|
|
54
|
+
readonly nativeTypesByDeclaration?: ReadonlyMap<string, HostNativeTypeDeclaration>;
|
|
55
|
+
/** Exact host-owned singleton declarations; see `PluginCapabilities.hostSingletonDeclarations`. */
|
|
56
|
+
readonly hostSingletonDeclarations?: ReadonlyMap<string, HostOwnedDeclaration>;
|
|
57
|
+
/**
|
|
58
|
+
* The ambient global names the installed hosts declare they do NOT provide
|
|
59
|
+
* (`PluginCapabilities.absentGlobals`, unioned).
|
|
60
|
+
*
|
|
61
|
+
* Supplied rather than known, for exactly the reason `nativeTypes` is: which
|
|
62
|
+
* globals a target lacks is a fact about that target, and a compiler that
|
|
63
|
+
* carried the list itself would be asserting something about the program's
|
|
64
|
+
* environment that nothing in the program says. Absent, every ambient
|
|
65
|
+
* declaration keeps the treatment it has today. See `absent-globals.ts` for
|
|
66
|
+
* the silent miscompile this exists to stop.
|
|
67
|
+
*/
|
|
68
|
+
readonly absentGlobals?: ReadonlySet<string>;
|
|
69
|
+
/**
|
|
70
|
+
* The standard library class names the backend implements natively, whose
|
|
71
|
+
* carrier it states in `nativeTypes` above -- see `bindStandardClasses`
|
|
72
|
+
* (semantics/host-protocols.ts) and `coreNativeTypes`
|
|
73
|
+
* (targets/cpp/host/core-globals.ts). Empty means the target implements no
|
|
74
|
+
* standard-library class of its own, which is the honest default: nothing
|
|
75
|
+
* here is derived from a name this file knows.
|
|
76
|
+
*/
|
|
77
|
+
readonly standardClasses?: ReadonlySet<string>;
|
|
78
|
+
/**
|
|
79
|
+
* Class member names an installed host reaches without the program spelling
|
|
80
|
+
* them -- see `PluginCapabilities.reachedMemberKeys`, and
|
|
81
|
+
* `reachability.ts`'s `hostReachedMemberKeys` for what the walk does with
|
|
82
|
+
* them.
|
|
83
|
+
*/
|
|
84
|
+
readonly hostReachedMemberKeys?: ReadonlySet<string>;
|
|
85
|
+
/**
|
|
86
|
+
* The `hostFunctions` of every installed host whose programs take the host
|
|
87
|
+
* mutation census's wildcard (`PluginCapabilities.refusesObjectPrototypeAbsenceProofs`).
|
|
88
|
+
* When reachable code names one of them, the two absence proofs that rest
|
|
89
|
+
* on an `Object.prototype` key obligation refuse up front, and the read
|
|
90
|
+
* stays boxed instead of costing the program its certificate. Carried on
|
|
91
|
+
* the deferred ledger, which is what both proofs consult.
|
|
92
|
+
*/
|
|
93
|
+
readonly hostFunctionsRefusingObjectPrototypeAbsenceProofs?: ReadonlySet<string>;
|
|
94
|
+
/**
|
|
95
|
+
* The global names the installed hosts own as PATHS rather than as values
|
|
96
|
+
* (`PluginCapabilities.hostNamespaces.roots`). Nothing about one is a host
|
|
97
|
+
* protocol: `Window@1` for `window` demands a native boundary no plugin can
|
|
98
|
+
* state, because there is no value to carry.
|
|
99
|
+
*/
|
|
100
|
+
readonly hostNamespaceRoots?: ReadonlySet<string>;
|
|
101
|
+
/** Exact declaration-owned namespace roots; configured names mask name-only admission. */
|
|
102
|
+
readonly hostNamespaceRootDeclarations?: readonly HostOwnedDeclaration[];
|
|
103
|
+
/**
|
|
104
|
+
* Every dotted path an installed host states a member under
|
|
105
|
+
* (`PluginCapabilities.hostNamespaces.methods`/`.properties`' own keys, e.g.
|
|
106
|
+
* `navigator.mediaDevices.getUserMedia`), so a path with one of these as a
|
|
107
|
+
* prefix is itself a namespace SEGMENT and not a value either -- the same
|
|
108
|
+
* fact `hostNamespaceRoots` states for a bare top-level name, one level
|
|
109
|
+
* deeper. Without this, a member reached only as `navigator.mediaDevices`
|
|
110
|
+
* (never spelled by the program, only implied by `Navigator`'s own
|
|
111
|
+
* declaration) was admitted as an ordinary host protocol needing its own
|
|
112
|
+
* native boundary -- `MediaDevices@1` -- when the host states no carrier for
|
|
113
|
+
* it and never will: `navigator.mediaDevices.getUserMedia(...)` is a path to
|
|
114
|
+
* one free function, the same shape `Display.getBrightness()` already is,
|
|
115
|
+
* and the emitter's own `isHostNamespacePath` (`targets/cpp/host-members.ts`)
|
|
116
|
+
* already resolves an arbitrarily long path this way -- this is the frontend
|
|
117
|
+
* learning the identical fact so preflight stops demanding a boundary the
|
|
118
|
+
* path never needed.
|
|
119
|
+
*/
|
|
120
|
+
readonly hostNamespacePaths?: ReadonlySet<string>;
|
|
121
|
+
/**
|
|
122
|
+
* The type an installed host carries the one object behind each of its
|
|
123
|
+
* namespace roots in (`PluginCapabilities.hostNamespaceRootTypes`), keyed by
|
|
124
|
+
* the root's own name -- `window` -> `gea::host::WindowFacade`.
|
|
125
|
+
*
|
|
126
|
+
* `hostNamespaceRoots` above says a root has no value to carry *as a cell*:
|
|
127
|
+
* nothing named `window` is materialized, and every use of it resolves to a
|
|
128
|
+
* spelling. It does not say the root is nothing -- `gea::host::window` is one
|
|
129
|
+
* real object the host holds -- and a carrier still has to be selected for
|
|
130
|
+
* the reference and the binding read the program publishes for it. Without
|
|
131
|
+
* this, the only answer available is the root's ambient DOM declaration, and
|
|
132
|
+
* `Window & typeof globalThis` flattens into a struct no host implements.
|
|
133
|
+
* Absent, nothing is recorded and every root derives exactly as it did.
|
|
134
|
+
*/
|
|
135
|
+
readonly hostNamespaceRootTypes?: ReadonlyMap<string, string>;
|
|
136
|
+
/** Exact host-owned declarations that authenticate CommonJS wrapper state. */
|
|
137
|
+
readonly commonJsGlobals?: ReadonlyMap<string, CommonJsWrapperDeclaration>;
|
|
138
|
+
/** Exact loader spellings a host build maps into its native builtin registry. */
|
|
139
|
+
readonly commonJsBuiltinModules?: ReadonlyMap<string, string>;
|
|
140
|
+
/** Exact source implementation for each canonical runtime builtin. */
|
|
141
|
+
readonly commonJsBuiltinModuleSources?: ReadonlyMap<string, string>;
|
|
142
|
+
/**
|
|
143
|
+
* Rewrites the installed plugins perform on a file's text before this program
|
|
144
|
+
* parses it (`PluginInstance.transformSource`), in installation order.
|
|
145
|
+
*
|
|
146
|
+
* Threaded rather than known, like `producers` and `nativeTypes`: what a
|
|
147
|
+
* library's own syntax means is the library's to say, and the one place
|
|
148
|
+
* saying it can still change what the checker sees is before the parse.
|
|
149
|
+
*/
|
|
150
|
+
readonly sourceTransforms?: readonly ((input: {
|
|
151
|
+
readonly fileName: string;
|
|
152
|
+
readonly text: string;
|
|
153
|
+
}) => string | null)[];
|
|
154
|
+
/**
|
|
155
|
+
* Whether the roots are JavaScript that carries its own types in JSDoc.
|
|
156
|
+
*
|
|
157
|
+
* Stated as a fact about the INPUT, not as a compiler-options passthrough:
|
|
158
|
+
* `allowJs`/`checkJs` is how TypeScript spells it, and that spelling belongs
|
|
159
|
+
* here, in the one layer allowed to name `typescript` at all. A caller
|
|
160
|
+
* outside `semantics/` can say what its sources are; it cannot say how the
|
|
161
|
+
* checker should be configured, because then two authorities would decide
|
|
162
|
+
* what a program means.
|
|
163
|
+
*
|
|
164
|
+
* `checkJs` travels with `allowJs` and is not separable. Admitting a `.js`
|
|
165
|
+
* root without checking it makes every JSDoc annotation invisible: the file
|
|
166
|
+
* still compiles, every function becomes implicitly `any`, and a program that
|
|
167
|
+
* is fully typed at its source turns into a boxed one with no diagnostic
|
|
168
|
+
* saying why. The gea build pipeline's vite bundle is exactly this shape --
|
|
169
|
+
* plain JS whose types are JSDoc plus a generated `.d.ts` reference -- so the
|
|
170
|
+
* unchecked reading is never the one a caller wants.
|
|
171
|
+
*/
|
|
172
|
+
readonly javaScriptSources?: boolean;
|
|
173
|
+
/** File text this compilation uses instead of what is on disk -- see `ProgramInput.sourceOverlay`. */
|
|
174
|
+
readonly sourceOverlay?: ReadonlyMap<string, string>;
|
|
175
|
+
/** How each file's own import specifiers resolve -- see `ProgramInput.moduleResolution`. */
|
|
176
|
+
readonly moduleResolution?: ReadonlyMap<string, ReadonlyMap<string, string>>;
|
|
177
|
+
/** Whether the caller stated the module set -- see `ProgramInput.statedModuleSet`. */
|
|
178
|
+
readonly statedModuleSet?: boolean;
|
|
179
|
+
/** Caller-stated classic-script lexical realm boundary; see `ProgramInput.closedScriptScope`. */
|
|
180
|
+
readonly closedScriptScope?: boolean;
|
|
181
|
+
}
|
|
182
|
+
export interface FrontendResult {
|
|
183
|
+
readonly dynamicFallbackTypes: ReadonlySet<StructuralTypeId>;
|
|
184
|
+
/** Object types written with values their declared fields cannot hold (`anyKeyedWriteTypes`); boxed in every mode. */
|
|
185
|
+
readonly dynamicWrittenTypes: ReadonlySet<StructuralTypeId>;
|
|
186
|
+
/** Exact source functions whose own mutable Function-object table requires fallback storage. */
|
|
187
|
+
readonly dynamicFallbackCallables: ReadonlySet<FunctionId>;
|
|
188
|
+
readonly graph: SemanticGraph;
|
|
189
|
+
readonly sourcePreparations: readonly DiagnosticSourcePreparationAudit[];
|
|
190
|
+
/**
|
|
191
|
+
* Declared types that are host handles rather than program-defined records.
|
|
192
|
+
*
|
|
193
|
+
* Only the frontend can answer this, because only the frontend can ask the
|
|
194
|
+
* checker. It is not a lookup table of known names: `JSX.Element` is
|
|
195
|
+
* whatever the checked program's own JSX namespace resolves it to, and the
|
|
196
|
+
* checker is what resolves it -- exactly as it decides intrinsic-vs-component
|
|
197
|
+
* from a tag's first character. A different program declaring a different
|
|
198
|
+
* `JSX` namespace binds a different declaration, and a program with no JSX
|
|
199
|
+
* binds nothing.
|
|
200
|
+
*/
|
|
201
|
+
readonly hostProtocols: ReadonlyMap<DeclarationId, HostProtocolBinding>;
|
|
202
|
+
/** Standard well-known symbols, kept by declaration identity after their keys normalize to `sym(declaration)`. */
|
|
203
|
+
readonly wellKnownSymbols: ReadonlyMap<DeclarationId, string>;
|
|
204
|
+
/**
|
|
205
|
+
* The ABI name a host defines a cell under, for every ambient value this
|
|
206
|
+
* program reads but never introduces -- an imported `mount`, a global
|
|
207
|
+
* `Math`, a `declare const` in a framework's declaration file.
|
|
208
|
+
*
|
|
209
|
+
* `projectBindingPlacements` turns these into `BindingStorage.kind ===
|
|
210
|
+
* 'external'`, which is the same placement an in-file `declare const`
|
|
211
|
+
* already gets through `BindingOperation.external`. The two routes exist
|
|
212
|
+
* because only one of them can: an in-file declaration is a census
|
|
213
|
+
* candidate and publishes an introduction, while a declaration in a
|
|
214
|
+
* declaration file is never walked at all, so nothing publishes one for it.
|
|
215
|
+
*/
|
|
216
|
+
readonly externalBindings: ReadonlyMap<DeclarationId, string>;
|
|
217
|
+
/** Ambient declarations the installed host authenticated as CommonJS wrapper parameters. */
|
|
218
|
+
readonly commonJsBindings: ReadonlyMap<DeclarationId, 'require' | 'exports' | 'module'>;
|
|
219
|
+
/** Ambient values authenticated as host singletons by complete declaration identity. */
|
|
220
|
+
readonly hostSingletonBindings: ReadonlySet<DeclarationId>;
|
|
221
|
+
/** Namespace roots authenticated by their complete checker declaration identity. */
|
|
222
|
+
readonly hostNamespaceBindings: ReadonlySet<DeclarationId>;
|
|
223
|
+
/**
|
|
224
|
+
* Which of those an installed host declared it does NOT provide, so the
|
|
225
|
+
* projection places a cell rather than an `extern`. See `absent-globals.ts`.
|
|
226
|
+
*/
|
|
227
|
+
readonly absentBindings: ReadonlySet<DeclarationId>;
|
|
228
|
+
/**
|
|
229
|
+
* Operations that sit inside a `typeof X !== 'undefined' && x instanceof X`
|
|
230
|
+
* guard's consequent, where `X` resolves by symbol to a host-declared-absent
|
|
231
|
+
* ambient value. See `dead-typeof-guards.ts` for the exact shape matched and
|
|
232
|
+
* why this cannot be answered from any operand's type.
|
|
233
|
+
*/
|
|
234
|
+
readonly deadTypeofGuards: DeadTypeofGuardCensus;
|
|
235
|
+
/**
|
|
236
|
+
* Where a node identity is in the source, or `null` for one this program
|
|
237
|
+
* has no node for.
|
|
238
|
+
*
|
|
239
|
+
* ⛔ DISPLAY ONLY, and the reason it lives here rather than being recomputed
|
|
240
|
+
* by a reporter: identities are ORDINALS from `identities.ts`'s own
|
|
241
|
+
* deterministic walk, not positions, so the only honest way back to a line
|
|
242
|
+
* number is that same walk -- and this is the layer that has it. A reporter
|
|
243
|
+
* that guessed would print a plausible file and line for the wrong node,
|
|
244
|
+
* which is worse than printing none.
|
|
245
|
+
*
|
|
246
|
+
* The index is built on the FIRST call and only then: a compilation with a
|
|
247
|
+
* clean sweep never asks, and pays nothing.
|
|
248
|
+
*/
|
|
249
|
+
readonly locationOfNode: (node: NodeId) => DiagnosticLocation | null;
|
|
250
|
+
/**
|
|
251
|
+
* `locationOfNode`'s twin for a DeclarationId (and so, through
|
|
252
|
+
* `declarationOfFunction`, a FunctionId) -- a stage past the frontend that
|
|
253
|
+
* never had a `ts.Node` to mint a NodeId from, only the identity a
|
|
254
|
+
* `function-object` allocation or a declaration census already published.
|
|
255
|
+
* ⛔ DISPLAY ONLY, for the same reason `locationOfNode` is: resolved through
|
|
256
|
+
* the SAME position index, never a second one.
|
|
257
|
+
*/
|
|
258
|
+
readonly locationOfDeclaration: (declaration: DeclarationId) => DiagnosticLocation | null;
|
|
259
|
+
/** The source text of a node identity, through the same walk as `locationOfNode`, for display only. */
|
|
260
|
+
readonly textOfNode: (node: NodeId) => string | null;
|
|
261
|
+
/**
|
|
262
|
+
* The file each of those declarations lives in.
|
|
263
|
+
*
|
|
264
|
+
* The name a host defines a cell under is not always enough to say *which*
|
|
265
|
+
* cell: one host can declare the same name in two of its own files, meaning
|
|
266
|
+
* two different things by it (Apple's `installRootView`, in UIKit and in
|
|
267
|
+
* AppKit). The declaration is what tells them apart, and the file is the
|
|
268
|
+
* coordinate a host states its own tables in -- so this carries it, and a host
|
|
269
|
+
* with no such pair never looks at it.
|
|
270
|
+
*/
|
|
271
|
+
readonly externalBindingFiles: ReadonlyMap<DeclarationId, string>;
|
|
272
|
+
/**
|
|
273
|
+
* Which of those declarations the STANDARD LIBRARY declares, from
|
|
274
|
+
* `SourceFile.hasNoDefaultLib` -- see `HostCensus.standardLibrary` for the
|
|
275
|
+
* whole of why the distinction is needed and why that flag is the authority
|
|
276
|
+
* rather than a file-path match.
|
|
277
|
+
*/
|
|
278
|
+
readonly standardLibraryBindings: ReadonlySet<DeclarationId>;
|
|
279
|
+
/**
|
|
280
|
+
* This program's module bodies, in the order ECMA-262 evaluates them.
|
|
281
|
+
*
|
|
282
|
+
* A module body is a region like any other, but unlike a function it is not
|
|
283
|
+
* called by anything in the program: it RUNS, once, when the module graph is
|
|
284
|
+
* evaluated. Nothing downstream of here could recover the order -- the graph
|
|
285
|
+
* records each body's contents and its identity, not the import edges that
|
|
286
|
+
* decide which runs first -- so the frontend, which has the checker and can
|
|
287
|
+
* resolve a specifier to a file, is the only place that can state it.
|
|
288
|
+
*
|
|
289
|
+
* A target needs it to emit a program ENTRY: a `main`-shaped function that
|
|
290
|
+
* runs the modules in order. Without one an emitted program is a set of
|
|
291
|
+
* bodies nothing calls.
|
|
292
|
+
*/
|
|
293
|
+
readonly moduleOrder: readonly RegionId[];
|
|
294
|
+
/**
|
|
295
|
+
* The file each identity segment names, for every compiled (non-declaration)
|
|
296
|
+
* source file: `f12` -> its `fileName`.
|
|
297
|
+
*
|
|
298
|
+
* Display evidence, not authority. The identities themselves carry only the
|
|
299
|
+
* index (`identities.ts`), and nothing downstream may decide anything from
|
|
300
|
+
* the name -- it exists so a target that lays a program out as one
|
|
301
|
+
* translation unit per source file can NAME those units after the files
|
|
302
|
+
* whose bodies they hold, which is the one thing an index cannot do.
|
|
303
|
+
*/
|
|
304
|
+
readonly sourceFileNames: ReadonlyMap<string, string>;
|
|
305
|
+
/**
|
|
306
|
+
* Declared types that are one of the eight standard TypedArray view
|
|
307
|
+
* interfaces, keyed by the *instance* type's declaration and valued by the
|
|
308
|
+
* element width/encoding that view stores -- `Uint8Array`'s declaration
|
|
309
|
+
* maps to `'uint8'`, `Int32Array`'s to `'int32'`, and so on. See
|
|
310
|
+
* `typedArrayElementBindings` for how this is found.
|
|
311
|
+
*/
|
|
312
|
+
readonly typedArrayElements: ReadonlyMap<DeclarationId, TypedArrayElementDomain>;
|
|
313
|
+
/**
|
|
314
|
+
* The declaration identity of the standard library's own `Promise<T>`
|
|
315
|
+
* interface, or `null` if this compilation's `lib` does not install one.
|
|
316
|
+
* See `promiseDeclarationOf` for how this is found independent of whether
|
|
317
|
+
* the program's own text ever names `Promise`.
|
|
318
|
+
*/
|
|
319
|
+
readonly promiseDeclaration: DeclarationId | null;
|
|
320
|
+
/**
|
|
321
|
+
* The declaration identity of the standard library's own `Date` interface,
|
|
322
|
+
* or `null` if this compilation's `lib` does not install one. See
|
|
323
|
+
* `dateDeclarationOf`; resolved for the same reason `promiseDeclaration` is.
|
|
324
|
+
*/
|
|
325
|
+
readonly dateDeclaration: DeclarationId | null;
|
|
326
|
+
/**
|
|
327
|
+
* The declaration identity of the standard library's own `String` WRAPPER
|
|
328
|
+
* OBJECT interface (`new String(x)`), or `null` if this compilation's `lib`
|
|
329
|
+
* does not install one. See `stringObjectDeclarationOf`; resolved for the
|
|
330
|
+
* same reason `dateDeclaration` is.
|
|
331
|
+
*/
|
|
332
|
+
readonly stringObjectDeclaration: DeclarationId | null;
|
|
333
|
+
readonly errorDeclarations: ReadonlySet<DeclarationId>;
|
|
334
|
+
/**
|
|
335
|
+
* The declaration identity of the bare `Function` interface -- what
|
|
336
|
+
* `typeof x === 'function'` narrows to and what `Object.prototype.constructor`
|
|
337
|
+
* is declared as -- or `null` if this compilation's `lib` does not install
|
|
338
|
+
* one. See `functionDeclarationOf`, and `FunctionDeclarationPolicy`
|
|
339
|
+
* (representation/policies.ts) for why it is carried dynamically rather than
|
|
340
|
+
* as a host handle.
|
|
341
|
+
*/
|
|
342
|
+
readonly functionDeclaration: DeclarationId | null;
|
|
343
|
+
/**
|
|
344
|
+
* Which classes each class inherits from, transitively. See
|
|
345
|
+
* `classHeritageOf` (class-heritage.ts) and `ClassHeritagePolicy`
|
|
346
|
+
* (representation/policies.ts) for the two carrier questions that need it.
|
|
347
|
+
*/
|
|
348
|
+
readonly classHeritage: ReadonlyMap<DeclarationId, readonly DeclarationId[]>;
|
|
349
|
+
/**
|
|
350
|
+
* The derived classes the program stores into each base class's constructor
|
|
351
|
+
* slot -- see `constructorSlotSubclassesOf` (constructor-slot-subclasses.ts).
|
|
352
|
+
*/
|
|
353
|
+
readonly constructorSlotSubclasses: ReadonlyMap<DeclarationId, readonly DeclarationId[]>;
|
|
354
|
+
/** The classes no evaluation can instantiate -- see `uninstantiableClassesOf` (uninstantiable-classes.ts). */
|
|
355
|
+
readonly uninstantiableClasses: ReadonlySet<DeclarationId>;
|
|
356
|
+
/**
|
|
357
|
+
* The one class this program declares as each interface's implementation --
|
|
358
|
+
* see `interfaceImplementorsOf` (interface-implementors.ts) and
|
|
359
|
+
* `InterfaceImplementorPolicy` (representation/policies.ts). Resolved here,
|
|
360
|
+
* beside `classHeritage`, for the same reason: it reads `implements`
|
|
361
|
+
* clauses, and nothing below the semantic layer may import `typescript`.
|
|
362
|
+
*/
|
|
363
|
+
readonly interfaceImplementors: ReadonlyMap<DeclarationId, readonly DeclarationId[]>;
|
|
364
|
+
/**
|
|
365
|
+
* The declaration identity of the standard library's own `Generator<T,
|
|
366
|
+
* TReturn, TNext>` interface -- what a `function*` returns -- or `null` if
|
|
367
|
+
* this compilation's `lib` does not install one. See
|
|
368
|
+
* `generatorDeclarationOf`, and `GeneratorDeclarationPolicy`
|
|
369
|
+
* (representation/policies.ts) for why only this one interface and not
|
|
370
|
+
* `IterableIterator`/`Iterator`.
|
|
371
|
+
*/
|
|
372
|
+
readonly generatorDeclaration: DeclarationId | null;
|
|
373
|
+
/**
|
|
374
|
+
* The declaration identity of the standard `AsyncGenerator<T, TReturn,
|
|
375
|
+
* TNext>` interface -- what an `async function*` returns. Carried as the
|
|
376
|
+
* same cursor `generatorDeclaration` is; see `asyncGeneratorDeclarationOf`.
|
|
377
|
+
*/
|
|
378
|
+
readonly asyncGeneratorDeclaration: DeclarationId | null;
|
|
379
|
+
/** The standard `MapIterator<T>` returned by `Map.prototype.entries()`. */
|
|
380
|
+
readonly mapIteratorDeclaration: DeclarationId | null;
|
|
381
|
+
/**
|
|
382
|
+
* The declaration identity of each standard `Map`/`Set`/`WeakMap`/`WeakSet`
|
|
383
|
+
* interface this compilation's `lib` installs, valued by which family it is.
|
|
384
|
+
* See `keyedCollectionDeclarationsOf` for why this is resolved by name
|
|
385
|
+
* lookup rather than through the ambient-value census -- and for why the
|
|
386
|
+
* census's own `Map` protocol binding is not the answer.
|
|
387
|
+
*/
|
|
388
|
+
readonly keyedCollections: ReadonlyMap<DeclarationId, KeyedCollectionFamily>;
|
|
389
|
+
/**
|
|
390
|
+
* The declaration identity of each standard `RegExp`/`RegExpExecArray`/
|
|
391
|
+
* `RegExpMatchArray` interface this compilation's `lib` installs, valued by
|
|
392
|
+
* which role it plays. See `regexpDeclarationsOf` for why this is resolved by
|
|
393
|
+
* name lookup rather than through the ambient-value census -- a regexp
|
|
394
|
+
* LITERAL names `RegExp` nowhere -- and for why the census's own `RegExp`
|
|
395
|
+
* protocol binding is not the answer.
|
|
396
|
+
*/
|
|
397
|
+
readonly regexpDeclarations: ReadonlyMap<DeclarationId, RegExpDeclarationKind>;
|
|
398
|
+
/**
|
|
399
|
+
* The declaration identity of the standard `ArrayBuffer` and `DataView`
|
|
400
|
+
* interfaces this compilation's `lib` installs -- see
|
|
401
|
+
* `standardBufferDeclarationsOf` for why this is resolved by name against
|
|
402
|
+
* the standard library rather than found through the ambient-value census
|
|
403
|
+
* (which reaches `ArrayBuffer` and binds it as an OPAQUE host protocol).
|
|
404
|
+
*/
|
|
405
|
+
readonly standardBuffers: ReadonlyMap<DeclarationId, StandardBufferKind>;
|
|
406
|
+
/**
|
|
407
|
+
* The structural type of every host namespace ROOT this program names, to
|
|
408
|
+
* the C++ type the host carries that root's object in -- see
|
|
409
|
+
* `HostCensus.namespaceRoots` for why this one census answer is keyed by
|
|
410
|
+
* structural type rather than by declaration, and
|
|
411
|
+
* `representation/policies.ts`'s `HostNamespaceRootPolicy` for what reads it.
|
|
412
|
+
*/
|
|
413
|
+
readonly hostNamespaceRoots: ReadonlyMap<StructuralTypeId, string>;
|
|
414
|
+
/** Errors TypeScript itself reports, translated out of the checker's vocabulary. */
|
|
415
|
+
readonly checkerDiagnostics: readonly DiagnosticEvidence[];
|
|
416
|
+
/** Conditional inference requirements rejected by the final shared host census. */
|
|
417
|
+
readonly intrinsicProtocolDiagnostics: readonly DiagnosticEvidence[];
|
|
418
|
+
readonly uninstalledFamilies: readonly OperationFamily[];
|
|
419
|
+
/**
|
|
420
|
+
* What each write-discovery census bound and why it refused the rest.
|
|
421
|
+
*
|
|
422
|
+
* Every one of the six censuses already keeps this accounting -- each states
|
|
423
|
+
* `boundCount` and a `refusals` map over its own reason vocabulary -- and
|
|
424
|
+
* until now none of it left `semantics/`. The consequence was measurable: a
|
|
425
|
+
* campaign whose whole object is "which cell had no answer" could see only
|
|
426
|
+
* the SYNTACTIC shape of a boxed carrier from outside, and had to re-derive
|
|
427
|
+
* the census's reason by rebuilding a `ts.Program` beside the compiler and
|
|
428
|
+
* guessing. Ranking work by a guessed root is how two rounds went to the
|
|
429
|
+
* wrong place (`docs/DEFECT-PATTERNS.md` section 8).
|
|
430
|
+
*
|
|
431
|
+
* Reported, not judged: a refusal is often the CORRECT answer (a cell whose
|
|
432
|
+
* write set is genuinely open must stay dynamic), so a count here is a
|
|
433
|
+
* question to ask, never a defect by itself.
|
|
434
|
+
*/
|
|
435
|
+
readonly censusAccounting: ReadonlyMap<string, CensusAccounting>;
|
|
436
|
+
/**
|
|
437
|
+
* The frontend's evidence-policy tables: the six write-discovery
|
|
438
|
+
* censuses above (`parameters`/`returns`/`local`/`field` bindings, plus
|
|
439
|
+
* `collections` and `bags`), restated as evidence policies over one shared
|
|
440
|
+
* `CellFacts` table -- see `normalize/cells/`. Computed alongside the
|
|
441
|
+
* existing composition from the SAME inputs (`identities`, the settled
|
|
442
|
+
* `valueFlow`, the reachable program), published here, and read by NOTHING
|
|
443
|
+
* downstream yet: `structural.ts`'s `typeAt` chain still answers every
|
|
444
|
+
* question above exactly as it does today. `agreement` is the instrument
|
|
445
|
+
* this phase's gate needs -- per program, how many declarations this table
|
|
446
|
+
* answers identically to that chain, how many differently, and how many
|
|
447
|
+
* neither answers nor can be compared (a collection/bag fact, whose domains
|
|
448
|
+
* are not yet ported -- see `normalize/cells/policies/index.ts`'s own
|
|
449
|
+
* header for exactly why). Phase 4.2: `table.refusals` restates each
|
|
450
|
+
* `twoOwnerClaims` row as a typed `CellRefusal` (`normalize/cells/model.ts`)
|
|
451
|
+
* -- still read by nothing downstream, same as the rest of this table.
|
|
452
|
+
*/
|
|
453
|
+
readonly cellFacts: CellFactsPublication;
|
|
454
|
+
/**
|
|
455
|
+
* Nodes for which two of `normalize/structural.ts`'s rules both had an
|
|
456
|
+
* answer -- the frontend's own finding channel.
|
|
457
|
+
*
|
|
458
|
+
* Empty unless `GEA_STRUCTURAL_DISAGREEMENT` is set. Forwarded here rather
|
|
459
|
+
* than left on the mapper for the same reason `cellFacts` is: a script that
|
|
460
|
+
* only wants to know what the rule set disagrees about should not have to
|
|
461
|
+
* reach into a specialization view to find out.
|
|
462
|
+
*/
|
|
463
|
+
readonly structuralDisagreements: readonly StructuralDisagreement[];
|
|
464
|
+
/**
|
|
465
|
+
* The copies of every generic class whose copies can differ in layout --
|
|
466
|
+
* `StructuralMapper.classCopies`, read once typing is done and forwarded
|
|
467
|
+
* to the deriver as its `ClassCopyPolicy`.
|
|
468
|
+
*/
|
|
469
|
+
readonly classCopies: ReadonlyMap<DeclarationId, readonly ClassCopyKey[]>;
|
|
470
|
+
/**
|
|
471
|
+
* Rules that answered outside their declared forms -- the 4.3 port's own
|
|
472
|
+
* gate. Empty unless `GEA_STRUCTURAL_FORM_AUDIT` is set; non-empty means a
|
|
473
|
+
* `forms` list is a false claim and some rule is being skipped for a form it
|
|
474
|
+
* can really answer for.
|
|
475
|
+
*/
|
|
476
|
+
readonly structuralFormViolations: readonly StructuralFormViolation[];
|
|
477
|
+
/**
|
|
478
|
+
* Every write-discovery refusal, typed and carrying the cell it is about.
|
|
479
|
+
*
|
|
480
|
+
* `parameters` is the COMPOSED view, so its list already carries the return,
|
|
481
|
+
* local, field and JSDoc layers it wraps; only the two censuses that are not
|
|
482
|
+
* in that chain are concatenated beside it. `compiler.ts` folds this into
|
|
483
|
+
* `CompileResult.refusals`, which is the point of the exercise: until now a
|
|
484
|
+
* census refusal was a number in a side table, and no caller asking "what did
|
|
485
|
+
* this compilation refuse" could see one (the frontend is replaced, not instrumented).
|
|
486
|
+
*/
|
|
487
|
+
readonly censusRefusals: readonly CensusRefusal[];
|
|
488
|
+
}
|
|
489
|
+
/** One census's own accounting of what it answered and what it declined. */
|
|
490
|
+
export interface CensusAccounting {
|
|
491
|
+
/** Declarations this census gave a type to. */
|
|
492
|
+
readonly bound: number;
|
|
493
|
+
/**
|
|
494
|
+
* Why the rest were declined, counted by refusal ROOT.
|
|
495
|
+
*
|
|
496
|
+
* DERIVED from the census's typed refusal list rather than maintained beside
|
|
497
|
+
* it (`censusRefusalCounts`). A count kept in parallel with the refusals it
|
|
498
|
+
* counts is free to drift from them, which is the two-authorities defect this
|
|
499
|
+
* refactor removes, in miniature. Read `FrontendResult.censusRefusals` when
|
|
500
|
+
* the question is WHICH cell rather than how many.
|
|
501
|
+
*/
|
|
502
|
+
readonly refusals: ReadonlyMap<string, number>;
|
|
503
|
+
}
|
|
504
|
+
export declare const runFrontend: (input: FrontendInput) => FrontendResult;
|