@scriptc/compiler 0.0.35 → 0.1.1
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/ambient/scriptc-node-fallback.d.ts +14 -11
- package/ambient/scriptc-overrides.d.ts +0 -7
- package/ambient/scriptc.d.ts +1 -1
- package/dist/backend/build-cache.d.ts +44 -0
- package/dist/backend/build-cache.js +241 -0
- package/dist/backend/build-cache.js.map +1 -0
- package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
- package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
- package/dist/backend/c/async.js.map +1 -0
- package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
- package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
- package/dist/backend/c/c-emitter.js.map +1 -0
- package/dist/backend/c/exprs.d.ts +8 -0
- package/dist/backend/c/exprs.js +7937 -0
- package/dist/backend/c/exprs.js.map +1 -0
- package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
- package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
- package/dist/backend/c/island.js.map +1 -0
- package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
- package/dist/backend/{emission → c}/may-throw.js +4 -1
- package/dist/backend/c/may-throw.js.map +1 -0
- package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
- package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
- package/dist/backend/c/shapes.js.map +1 -0
- package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
- package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +395 -343
- package/dist/backend/c/stmts.js.map +1 -0
- package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
- package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
- package/dist/backend/c/types.js.map +1 -0
- package/dist/backend/c/types.test.js +25 -0
- package/dist/backend/c/types.test.js.map +1 -0
- package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
- package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +242 -304
- package/dist/backend/c/walkers.js.map +1 -0
- package/dist/backend/external-c.d.ts +33 -0
- package/dist/backend/external-c.js +51 -0
- package/dist/backend/external-c.js.map +1 -0
- package/dist/backend/ffi-callbacks.d.ts +1 -1
- package/dist/backend/ffi-callbacks.js +4 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
- package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
- package/dist/backend/library-identity-markers.js.map +1 -0
- package/dist/backend/link-plan.d.ts +37 -0
- package/dist/backend/link-plan.js +26 -0
- package/dist/backend/link-plan.js.map +1 -0
- package/dist/backend/linker.d.ts +22 -0
- package/dist/backend/linker.js +236 -0
- package/dist/backend/linker.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +4 -0
- package/dist/backend/llvm/blocks.js +29 -0
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +2 -19
- package/dist/backend/llvm/classes.js +20 -52
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +4 -0
- package/dist/backend/llvm/common.js +27 -0
- package/dist/backend/llvm/common.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +3 -8
- package/dist/backend/llvm/dyn.js +159 -224
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +4 -1
- package/dist/backend/llvm/emitter.js +548 -9988
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.d.ts +4 -0
- package/dist/backend/llvm/expr-async.js +726 -0
- package/dist/backend/llvm/expr-async.js.map +1 -0
- package/dist/backend/llvm/expr-bytes.d.ts +13 -0
- package/dist/backend/llvm/expr-bytes.js +456 -0
- package/dist/backend/llvm/expr-bytes.js.map +1 -0
- package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
- package/dist/backend/llvm/expr-callbacks.js +520 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -0
- package/dist/backend/llvm/expr-calls.d.ts +2 -0
- package/dist/backend/llvm/expr-calls.js +618 -0
- package/dist/backend/llvm/expr-calls.js.map +1 -0
- package/dist/backend/llvm/expr-containers.d.ts +25 -0
- package/dist/backend/llvm/expr-containers.js +637 -0
- package/dist/backend/llvm/expr-containers.js.map +1 -0
- package/dist/backend/llvm/expr-context.d.ts +255 -0
- package/dist/backend/llvm/expr-context.js +2 -0
- package/dist/backend/llvm/expr-context.js.map +1 -0
- package/dist/backend/llvm/expr-control.d.ts +2 -0
- package/dist/backend/llvm/expr-control.js +473 -0
- package/dist/backend/llvm/expr-control.js.map +1 -0
- package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
- package/dist/backend/llvm/expr-dispatch.js +153 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -0
- package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
- package/dist/backend/llvm/expr-dynamic.js +810 -0
- package/dist/backend/llvm/expr-dynamic.js.map +1 -0
- package/dist/backend/llvm/expr-island.d.ts +15 -0
- package/dist/backend/llvm/expr-island.js +690 -0
- package/dist/backend/llvm/expr-island.js.map +1 -0
- package/dist/backend/llvm/expr-primitives.d.ts +6 -0
- package/dist/backend/llvm/expr-primitives.js +642 -0
- package/dist/backend/llvm/expr-primitives.js.map +1 -0
- package/dist/backend/llvm/expr-records.d.ts +9 -0
- package/dist/backend/llvm/expr-records.js +299 -0
- package/dist/backend/llvm/expr-records.js.map +1 -0
- package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
- package/dist/backend/llvm/expr-stream-bridges.js +420 -0
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
- package/dist/backend/llvm/lib-dispatch.js +267 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -0
- package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
- package/dist/backend/llvm/lib-filesystem.js +594 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -0
- package/dist/backend/llvm/lib-network.d.ts +2 -0
- package/dist/backend/llvm/lib-network.js +429 -0
- package/dist/backend/llvm/lib-network.js.map +1 -0
- package/dist/backend/llvm/lib-process.d.ts +5 -0
- package/dist/backend/llvm/lib-process.js +585 -0
- package/dist/backend/llvm/lib-process.js.map +1 -0
- package/dist/backend/llvm/lib-shared.d.ts +6 -0
- package/dist/backend/llvm/lib-shared.js +687 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -0
- package/dist/backend/llvm/lib-stream.d.ts +2 -0
- package/dist/backend/llvm/lib-stream.js +470 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +12 -2
- package/dist/backend/llvm/shapes.js +66 -307
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +52 -0
- package/dist/backend/llvm/shapes.test.js.map +1 -0
- package/dist/backend/llvm/unsupported.d.ts +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -3
- package/dist/backend/llvm/walkers.js +195 -222
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +45 -0
- package/dist/backend/native-codegen.js +275 -0
- package/dist/backend/native-codegen.js.map +1 -0
- package/dist/backend/native-codegen.test.js +226 -0
- package/dist/backend/native-codegen.test.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +96 -0
- package/dist/backend/native-link-info.js +243 -0
- package/dist/backend/native-link-info.js.map +1 -0
- package/dist/backend/native-link-info.test.d.ts +1 -0
- package/dist/backend/native-link-info.test.js +134 -0
- package/dist/backend/native-link-info.test.js.map +1 -0
- package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +54 -34
- package/dist/backend/{cc.js → native-toolchain.js} +231 -810
- package/dist/backend/native-toolchain.js.map +1 -0
- package/dist/backend/native-toolchain.test.d.ts +1 -0
- package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +219 -7
- package/dist/backend/native-toolchain.test.js.map +1 -0
- package/dist/backend/object-localize.js +1 -1
- package/dist/backend/runtime-abi.d.ts +10 -0
- package/dist/backend/runtime-abi.js +11 -0
- package/dist/backend/runtime-abi.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.d.ts +1 -0
- package/dist/backend/runtime-pack-targets.test.js +54 -0
- package/dist/backend/runtime-pack-targets.test.js.map +1 -0
- package/dist/backend/runtime-pack.d.ts +112 -0
- package/dist/backend/runtime-pack.js +305 -0
- package/dist/backend/runtime-pack.js.map +1 -0
- package/dist/backend/runtime-pack.test.d.ts +1 -0
- package/dist/backend/runtime-pack.test.js +473 -0
- package/dist/backend/runtime-pack.test.js.map +1 -0
- package/dist/backend/targets.d.ts +76 -0
- package/dist/backend/targets.js +262 -0
- package/dist/backend/targets.js.map +1 -0
- package/dist/backend/targets.test.d.ts +1 -0
- package/dist/backend/targets.test.js +41 -0
- package/dist/backend/targets.test.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +41 -0
- package/dist/backend/vendor-archives.js +462 -0
- package/dist/backend/vendor-archives.js.map +1 -0
- package/dist/compat/fetch-profile.d.ts +0 -1
- package/dist/compat/fetch-profile.js +0 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js +3 -3
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +35 -33
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +11 -12
- package/dist/diagnostics/diagnostic.js +19 -17
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/render.d.ts +1 -1
- package/dist/diagnostics/render.js +1 -1
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/errors.d.ts +5 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/dist/executable/{early-cache.d.ts → executable-cache.d.ts} +2 -2
- package/dist/executable/{early-cache.js → executable-cache.js} +36 -98
- package/dist/executable/executable-cache.js.map +1 -0
- package/dist/executable/executable-cache.test.d.ts +1 -0
- package/dist/executable/{early-cache.test.js → executable-cache.test.js} +3 -3
- package/dist/executable/executable-cache.test.js.map +1 -0
- package/dist/ffi/{profile.js → ffi-manifest.js} +1 -1
- package/dist/ffi/ffi-manifest.js.map +1 -0
- package/dist/frontend/builtin-modules.d.ts +21 -0
- package/dist/frontend/builtin-modules.js +82 -0
- package/dist/frontend/builtin-modules.js.map +1 -0
- package/dist/frontend/cjs-lexer.d.ts +7 -0
- package/dist/frontend/cjs-lexer.js +15 -17
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/dts-paths.d.ts +26 -0
- package/dist/frontend/dts-paths.js +41 -0
- package/dist/frontend/dts-paths.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +0 -2
- package/dist/frontend/input-tracker.js +1 -4
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/lib-contract.d.ts +1 -5
- package/dist/frontend/lib-contract.js +1 -1
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lib-exports.d.ts +1 -1
- package/dist/frontend/lowering/array-values.d.ts +8 -0
- package/dist/frontend/lowering/array-values.js +60 -0
- package/dist/frontend/lowering/array-values.js.map +1 -0
- package/dist/frontend/lowering/call-position.d.ts +4 -0
- package/dist/frontend/lowering/call-position.js +7 -0
- package/dist/frontend/lowering/call-position.js.map +1 -0
- package/dist/frontend/lowering/callback-arg.d.ts +20 -0
- package/dist/frontend/lowering/callback-arg.js +44 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
- package/dist/frontend/lowering/lib-boundary.js +34 -34
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +22 -0
- package/dist/frontend/lowering/lower-array-sort.js +619 -0
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.d.ts +3 -3
- package/dist/frontend/lowering/lower-assert.js +214 -241
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
- package/dist/frontend/lowering/lower-builtins.js +1285 -1233
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +59 -192
- package/dist/frontend/lowering/lower-calls.js +1644 -1506
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +62 -125
- package/dist/frontend/lowering/lower-classes.js +832 -866
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
- package/dist/frontend/lowering/lower-comptime.js +32 -31
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +35 -135
- package/dist/frontend/lowering/lower-containers.js +1984 -2227
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
- package/dist/frontend/lowering/lower-dgram.js +97 -111
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +4 -4
- package/dist/frontend/lowering/lower-enums.js +30 -30
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
- package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.d.ts +5 -5
- package/dist/frontend/lowering/lower-expando.js +40 -40
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +60 -264
- package/dist/frontend/lowering/lower-exprs.js +2361 -1765
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +6 -6
- package/dist/frontend/lowering/lower-generators.js +73 -72
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
- package/dist/frontend/lowering/lower-inspect.js +273 -261
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +39 -49
- package/dist/frontend/lowering/lower-island.js +447 -513
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
- package/dist/frontend/lowering/lower-mixins.js +85 -85
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +12 -18
- package/dist/frontend/lowering/lower-modules.js +284 -283
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
- package/dist/frontend/lowering/lower-namespaces.js +123 -115
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +18 -25
- package/dist/frontend/lowering/lower-server.js +909 -899
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
- package/dist/frontend/lowering/lower-stmts.js +1463 -1285
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +12 -12
- package/dist/frontend/lowering/lower-stream.js +300 -301
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +5 -5
- package/dist/frontend/lowering/lower-test.js +82 -82
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +134 -22
- package/dist/frontend/lowering/lowerer.js +1277 -126
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
- package/dist/frontend/lowering/pairs-snapshot.js +85 -0
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +6 -0
- package/dist/frontend/lowering/static-this.js +24 -0
- package/dist/frontend/lowering/static-this.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +24 -35
- package/dist/frontend/lowering/surfaces.js +78 -66
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.js +6 -28
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +0 -10
- package/dist/frontend/npm-static.js +4 -7
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +0 -24
- package/dist/frontend/npm.js +11 -85
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -1
- package/dist/frontend/program.js +9 -4
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance-registry.d.ts +0 -2
- package/dist/frontend/provenance-registry.js +0 -10
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/provenance.js +4 -7
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +7 -2
- package/dist/frontend/resolve.js +12 -17
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.d.ts +1 -0
- package/dist/frontend/resolve.test.js +29 -0
- package/dist/frontend/resolve.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +2 -2
- package/dist/frontend/ts7/adapter.js +1 -1
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/checker.js +2 -36
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/enums.js +2 -1
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
- package/dist/frontend/ts7/program-adapter.js.map +1 -0
- package/dist/frontend/ts7/world-check.d.ts +1 -3
- package/dist/frontend/ts7/world-check.js +3 -1
- package/dist/frontend/ts7/world-check.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +8 -0
- package/dist/frontend/tsc-codes.js +109 -0
- package/dist/frontend/tsc-codes.js.map +1 -0
- package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
- package/dist/frontend/{types.js → type-mapper.js} +12 -11
- package/dist/frontend/type-mapper.js.map +1 -0
- package/dist/frontend/workspace-registry.d.ts +26 -0
- package/dist/frontend/workspace-registry.js +71 -0
- package/dist/frontend/workspace-registry.js.map +1 -0
- package/dist/index.d.ts +113 -31
- package/dist/index.js +536 -128
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +37 -0
- package/dist/ir/analysis.js +118 -0
- package/dist/ir/analysis.js.map +1 -0
- package/dist/ir/analysis.test.d.ts +1 -0
- package/dist/ir/analysis.test.js +21 -0
- package/dist/ir/analysis.test.js.map +1 -0
- package/dist/ir/build.d.ts +9 -0
- package/dist/ir/build.js +33 -0
- package/dist/ir/build.js.map +1 -0
- package/dist/ir/integer-loops.d.ts +1 -1
- package/dist/ir/{nodes.d.ts → ir.d.ts} +119 -37
- package/dist/ir/{nodes.js → ir.js} +170 -166
- package/dist/ir/ir.js.map +1 -0
- package/dist/ir/ir.test.d.ts +1 -0
- package/dist/ir/ir.test.js +17 -0
- package/dist/ir/ir.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +2 -2
- package/dist/ir/serialize.js +3 -2
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/validate.d.ts +1 -1
- package/dist/ir/validate.js +93 -41
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +24 -0
- package/dist/library/cache-primitives.js +83 -0
- package/dist/library/cache-primitives.js.map +1 -0
- package/dist/library/cache-reset.test.d.ts +1 -0
- package/dist/library/cache-reset.test.js +47 -0
- package/dist/library/cache-reset.test.js.map +1 -0
- package/dist/library/{implementation-identity.js → compiler-self-identity.js} +1 -1
- package/dist/library/compiler-self-identity.js.map +1 -0
- package/dist/library/fence-eval.d.ts +3 -1
- package/dist/library/fence-eval.js +8 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.d.ts +1 -36
- package/dist/library/int-infer.js +29 -18
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
- package/dist/library/{early-cache.js → library-cache.js} +34 -89
- package/dist/library/library-cache.js.map +1 -0
- package/dist/library/library-cache.test.d.ts +1 -0
- package/dist/library/{early-cache.test.js → library-cache.test.js} +7 -7
- package/dist/library/library-cache.test.js.map +1 -0
- package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
- package/dist/library/{profile.js → library-profile.js} +18 -11
- package/dist/library/library-profile.js.map +1 -0
- package/dist/library/semantic-source.js +2 -1
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar.d.ts +5 -2
- package/dist/library/sidecar.js +11 -5
- package/dist/library/sidecar.js.map +1 -1
- package/dist/startup-cache.d.ts +11 -3
- package/dist/startup-cache.js +17 -2
- package/dist/startup-cache.js.map +1 -1
- package/package.json +19 -2
- package/surface-manifest.json +5 -5
- package/dist/backend/cc-cache.test.js.map +0 -1
- package/dist/backend/cc.js.map +0 -1
- package/dist/backend/emission/emit-async.js.map +0 -1
- package/dist/backend/emission/emit-exprs.d.ts +0 -13
- package/dist/backend/emission/emit-exprs.js +0 -7407
- package/dist/backend/emission/emit-exprs.js.map +0 -1
- package/dist/backend/emission/emit-island.js.map +0 -1
- package/dist/backend/emission/emit-shapes.js.map +0 -1
- package/dist/backend/emission/emit-stmts.js.map +0 -1
- package/dist/backend/emission/emit-types.js.map +0 -1
- package/dist/backend/emission/emit-walkers.js.map +0 -1
- package/dist/backend/emission/emitter.js.map +0 -1
- package/dist/backend/emission/may-throw.js.map +0 -1
- package/dist/backend/library-identity.js.map +0 -1
- package/dist/executable/early-cache.js.map +0 -1
- package/dist/executable/early-cache.test.js.map +0 -1
- package/dist/ffi/profile.js.map +0 -1
- package/dist/frontend/lowering/lower-emitter.js.map +0 -1
- package/dist/frontend/shared.d.ts +0 -82
- package/dist/frontend/shared.js +0 -308
- package/dist/frontend/shared.js.map +0 -1
- package/dist/frontend/ts7/program.js.map +0 -1
- package/dist/frontend/types.js.map +0 -1
- package/dist/ir/nodes.js.map +0 -1
- package/dist/library/early-cache.js.map +0 -1
- package/dist/library/early-cache.test.js.map +0 -1
- package/dist/library/implementation-identity.js.map +0 -1
- package/dist/library/profile.js.map +0 -1
- /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
- /package/dist/{executable/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
- /package/dist/{library/early-cache.test.d.ts → backend/native-codegen.test.d.ts} +0 -0
- /package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +0 -0
- /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
- /package/dist/library/{implementation-identity.d.ts → compiler-self-identity.d.ts} +0 -0
|
@@ -48,15 +48,15 @@ function unparen(e) {
|
|
|
48
48
|
* (supported) mixin. Cached per function node; recognition is pure (no
|
|
49
49
|
* diagnostics, no registration), so a null answer simply leaves the call
|
|
50
50
|
* to the generic/direct machinery and ITS fences. */
|
|
51
|
-
export function mixinFnShapeOf(
|
|
52
|
-
const cached =
|
|
51
|
+
export function mixinFnShapeOf(lowerer, fn) {
|
|
52
|
+
const cached = lowerer.mixinFnShapes.get(fn);
|
|
53
53
|
if (cached !== undefined)
|
|
54
54
|
return cached;
|
|
55
|
-
const shape = mixinFnShapeInner(
|
|
56
|
-
|
|
55
|
+
const shape = mixinFnShapeInner(lowerer, fn);
|
|
56
|
+
lowerer.mixinFnShapes.set(fn, shape);
|
|
57
57
|
return shape;
|
|
58
58
|
}
|
|
59
|
-
function mixinFnShapeInner(
|
|
59
|
+
function mixinFnShapeInner(lowerer, fn) {
|
|
60
60
|
if (fn.asteriskToken)
|
|
61
61
|
return null;
|
|
62
62
|
if (ts.getModifiers(fn)?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword))
|
|
@@ -66,7 +66,7 @@ function mixinFnShapeInner(L, fn) {
|
|
|
66
66
|
const p = fn.parameters[0];
|
|
67
67
|
if (!ts.isIdentifier(p.name) || p.dotDotDotToken || p.questionToken || p.initializer)
|
|
68
68
|
return null;
|
|
69
|
-
const paramSym =
|
|
69
|
+
const paramSym = lowerer.checker.getSymbolAtLocation(p.name);
|
|
70
70
|
if (!paramSym || !fn.body)
|
|
71
71
|
return null;
|
|
72
72
|
// The body must define-and-return exactly one class: an arrow whose
|
|
@@ -93,8 +93,8 @@ function mixinFnShapeInner(L, fn) {
|
|
|
93
93
|
stmts[1].expression !== undefined) {
|
|
94
94
|
const ret = unparen(stmts[1].expression);
|
|
95
95
|
if (ts.isIdentifier(ret)) {
|
|
96
|
-
const clsSym =
|
|
97
|
-
if (clsSym &&
|
|
96
|
+
const clsSym = lowerer.checker.getSymbolAtLocation(stmts[0].name);
|
|
97
|
+
if (clsSym && lowerer.checker.getSymbolAtLocation(ret) === clsSym)
|
|
98
98
|
classNode = stmts[0];
|
|
99
99
|
}
|
|
100
100
|
}
|
|
@@ -119,7 +119,7 @@ function mixinFnShapeInner(L, fn) {
|
|
|
119
119
|
const t = types[0];
|
|
120
120
|
if (t.typeArguments || !ts.isIdentifier(t.expression))
|
|
121
121
|
return null;
|
|
122
|
-
if (
|
|
122
|
+
if (lowerer.checker.getSymbolAtLocation(t.expression) !== paramSym)
|
|
123
123
|
return null;
|
|
124
124
|
// The parameter's flow must be fully traceable: the extends clause is
|
|
125
125
|
// its ONE reference (a parameter that is stored, compared, reassigned,
|
|
@@ -128,7 +128,7 @@ function mixinFnShapeInner(L, fn) {
|
|
|
128
128
|
ts.walkPreorder(fn.body, (n) => {
|
|
129
129
|
if (n === t.expression)
|
|
130
130
|
return undefined;
|
|
131
|
-
if (ts.isIdentifier(n) && n.text === p.name.getText() &&
|
|
131
|
+
if (ts.isIdentifier(n) && n.text === p.name.getText() && lowerer.checker.getSymbolAtLocation(n) === paramSym) {
|
|
132
132
|
extraRef = true;
|
|
133
133
|
return "stop";
|
|
134
134
|
}
|
|
@@ -140,9 +140,9 @@ function mixinFnShapeInner(L, fn) {
|
|
|
140
140
|
// Ctor>(Base: T)`): instantiations bind it to the argument's classval.
|
|
141
141
|
let paramTypeParam = null;
|
|
142
142
|
if (p.type && ts.isTypeReferenceNode(p.type) && ts.isIdentifier(p.type.typeName)) {
|
|
143
|
-
const refSym =
|
|
143
|
+
const refSym = lowerer.checker.getSymbolAtLocation(p.type.typeName);
|
|
144
144
|
if (refSym &&
|
|
145
|
-
fn.typeParameters?.some((tp) =>
|
|
145
|
+
fn.typeParameters?.some((tp) => lowerer.checker.getSymbolAtLocation(tp.name) === refSym)) {
|
|
146
146
|
paramTypeParam = refSym;
|
|
147
147
|
}
|
|
148
148
|
}
|
|
@@ -156,39 +156,39 @@ function mixinFnShapeInner(L, fn) {
|
|
|
156
156
|
* resolving to a single function declaration or a const binding holding
|
|
157
157
|
* an arrow/function expression (never-reassigned by constness), whose
|
|
158
158
|
* shape qualifies. */
|
|
159
|
-
export function mixinFnOfCallee(
|
|
159
|
+
export function mixinFnOfCallee(lowerer, callee) {
|
|
160
160
|
if (!ts.isIdentifier(callee))
|
|
161
161
|
return null;
|
|
162
162
|
// A shadowing local owns the name (heritage-time demands have no
|
|
163
163
|
// function context — nothing can shadow at collection). peekLocal: this
|
|
164
164
|
// is a probe, and probes must not thread capture state (resolveLocal's
|
|
165
165
|
// side effect — an ICE through a non-lifted enclosing function).
|
|
166
|
-
if (
|
|
166
|
+
if (lowerer.fnStack.length > 0 && lowerer.peekLocal(callee))
|
|
167
167
|
return null;
|
|
168
168
|
// Recognition is a side-effect-free PROBE (it runs on every candidate
|
|
169
169
|
// call/binding/reference): resolve without resolveValueSymbol's
|
|
170
170
|
// deferred-diagnostic flush — a non-mixin callee's own paths flush when
|
|
171
171
|
// THEY resolve it.
|
|
172
|
-
let sym =
|
|
172
|
+
let sym = lowerer.checker.getSymbolAtLocation(callee) ?? null;
|
|
173
173
|
if (sym && sym.flags & ts.SymbolFlags.Alias)
|
|
174
|
-
sym =
|
|
174
|
+
sym = lowerer.checker.getAliasedSymbol(sym);
|
|
175
175
|
if (!sym)
|
|
176
176
|
return null;
|
|
177
|
-
const decls =
|
|
177
|
+
const decls = lowerer.checker.declarationsOf(sym);
|
|
178
178
|
if (decls.length !== 1 || decls[0] === undefined)
|
|
179
179
|
return null; // overloads / merged declarations
|
|
180
180
|
const d = decls[0];
|
|
181
181
|
if (ts.isFunctionDeclaration(d))
|
|
182
|
-
return mixinFnShapeOf(
|
|
182
|
+
return mixinFnShapeOf(lowerer, d);
|
|
183
183
|
if (ts.isVariableDeclaration(d)) {
|
|
184
184
|
const fn = mixinFnNodeOfBinding(d);
|
|
185
|
-
return fn ? mixinFnShapeOf(
|
|
185
|
+
return fn ? mixinFnShapeOf(lowerer, fn) : null;
|
|
186
186
|
}
|
|
187
187
|
return null;
|
|
188
188
|
}
|
|
189
189
|
/** The arrow/function-expression initializer of a CONST binding — the
|
|
190
190
|
* value-binding spelling of a mixin function declaration. */
|
|
191
|
-
|
|
191
|
+
function mixinFnNodeOfBinding(decl) {
|
|
192
192
|
if (!ts.isIdentifier(decl.name) || decl.initializer === undefined)
|
|
193
193
|
return null;
|
|
194
194
|
if (!ts.isVariableDeclarationList(decl.parent) ||
|
|
@@ -203,58 +203,58 @@ export function mixinFnNodeOfBinding(decl) {
|
|
|
203
203
|
* exists (the binding is never read as a value; calls instantiate per
|
|
204
204
|
* site), and both collectGlobals and the statement lowering skip it by
|
|
205
205
|
* this test. */
|
|
206
|
-
export function isMixinFnBinding(
|
|
206
|
+
export function isMixinFnBinding(lowerer, decl) {
|
|
207
207
|
const fn = mixinFnNodeOfBinding(decl);
|
|
208
|
-
return fn !== null && mixinFnShapeOf(
|
|
208
|
+
return fn !== null && mixinFnShapeOf(lowerer, fn) !== null;
|
|
209
209
|
}
|
|
210
210
|
/** The class a mixin ARGUMENT statically names, with every unsupported
|
|
211
211
|
* argument shape a named fence (recognition already established the call
|
|
212
212
|
* is a mixin call — from here failures are honest diagnostics, never a
|
|
213
213
|
* fallthrough to a wronger message). */
|
|
214
|
-
function mixinBaseClassOf(
|
|
214
|
+
function mixinBaseClassOf(lowerer, arg) {
|
|
215
215
|
const e = unparen(arg);
|
|
216
216
|
// A nested mixin call: `Tagged(Printable(Derived))` — the inner
|
|
217
217
|
// instantiation is the outer's base (instantiated first, exactly JS's
|
|
218
218
|
// argument-before-call order).
|
|
219
219
|
if (ts.isCallExpression(e)) {
|
|
220
|
-
const inner = mixinCallClassInfoOf(
|
|
220
|
+
const inner = mixinCallClassInfoOf(lowerer, e);
|
|
221
221
|
if (inner)
|
|
222
222
|
return inner;
|
|
223
|
-
|
|
223
|
+
lowerer.unsupported("SC1090", arg, "mixin arguments that are calls of anything but another mixin function (the base class must be statically known)");
|
|
224
224
|
}
|
|
225
225
|
// A class expression argument: `Tagged(class { … })` — collected like
|
|
226
226
|
// any expression class (its own position fences apply).
|
|
227
227
|
if (ts.isClassExpression(e))
|
|
228
|
-
return checkedMixinBase(
|
|
228
|
+
return checkedMixinBase(lowerer, arg, lowerer.lowerClassExpressionInfo(e));
|
|
229
229
|
if (ts.isIdentifier(e)) {
|
|
230
|
-
const sym =
|
|
231
|
-
const builtin =
|
|
230
|
+
const sym = lowerer.resolveValueSymbol(e);
|
|
231
|
+
const builtin = lowerer.builtinErrorInfoOf(sym) ?? lowerer.builtinEmitterInfoOf(sym) ?? builtinStreamInfoOf(lowerer, sym);
|
|
232
232
|
if (builtin) {
|
|
233
|
-
|
|
233
|
+
lowerer.unsupported("SC1090", arg, `mixins over the builtin class '${e.text}' (its construction is libCall-shaped — only program classes compose)`);
|
|
234
234
|
}
|
|
235
|
-
const direct = (sym ?
|
|
236
|
-
propertyAssignedClassInfoOf(
|
|
237
|
-
exactClassOfReceiver(
|
|
235
|
+
const direct = (sym ? lowerer.classBySymbol.get(sym) : undefined) ??
|
|
236
|
+
propertyAssignedClassInfoOf(lowerer, sym) ??
|
|
237
|
+
exactClassOfReceiver(lowerer, e) ??
|
|
238
238
|
// A const holding a mixin RESULT declared earlier (`const A = M(B);
|
|
239
239
|
// class D extends M2(A) {}`): the binding pins that call's
|
|
240
240
|
// instantiation — collected on demand, registered so every later
|
|
241
241
|
// path answers like a declaration (collectGlobals does the same).
|
|
242
|
-
mixinResultBindingClassOf(
|
|
242
|
+
mixinResultBindingClassOf(lowerer, sym);
|
|
243
243
|
if (direct)
|
|
244
|
-
return checkedMixinBase(
|
|
244
|
+
return checkedMixinBase(lowerer, arg, direct);
|
|
245
245
|
}
|
|
246
|
-
|
|
246
|
+
lowerer.unsupported("SC1090", arg, "mixin arguments that are not statically one program class (the compiled mixin monomorphizes per concrete base)");
|
|
247
247
|
}
|
|
248
248
|
/** Argument classes the classval story cannot carry compose-fences. */
|
|
249
|
-
function checkedMixinBase(
|
|
249
|
+
function checkedMixinBase(lowerer, blame, info) {
|
|
250
250
|
if (info.builtinError || info.builtinEmitter || info.builtinStream) {
|
|
251
|
-
|
|
251
|
+
lowerer.unsupported("SC1090", blame, `mixins over the builtin class '${info.def.jsName || info.def.name}' (its construction is libCall-shaped — only program classes compose)`);
|
|
252
252
|
}
|
|
253
253
|
if (info.generic) {
|
|
254
|
-
|
|
254
|
+
lowerer.unsupported("SC1090", blame, "mixins over a generic class family (pass a concrete class)");
|
|
255
255
|
}
|
|
256
256
|
if (info.classDecorators?.valueGlobalId !== undefined) {
|
|
257
|
-
|
|
257
|
+
lowerer.unsupported("SC1090", blame, "mixins over a decorated class (its decorators may replace it — the runtime base would be the decoration result)");
|
|
258
258
|
}
|
|
259
259
|
return info;
|
|
260
260
|
}
|
|
@@ -262,10 +262,10 @@ function checkedMixinBase(L, blame, info) {
|
|
|
262
262
|
* exactly that instantiation. Registers classBySymbol on success so every
|
|
263
263
|
* downstream path (construction, statics, extends, instanceof, reads)
|
|
264
264
|
* answers like a declaration from then on. */
|
|
265
|
-
export function mixinResultBindingClassOf(
|
|
265
|
+
export function mixinResultBindingClassOf(lowerer, sym) {
|
|
266
266
|
if (!sym)
|
|
267
267
|
return null;
|
|
268
|
-
const decls =
|
|
268
|
+
const decls = lowerer.checker.declarationsOf(sym);
|
|
269
269
|
if (decls.length !== 1 || decls[0] === undefined || !ts.isVariableDeclaration(decls[0]))
|
|
270
270
|
return null;
|
|
271
271
|
const decl = decls[0];
|
|
@@ -277,9 +277,9 @@ export function mixinResultBindingClassOf(L, sym) {
|
|
|
277
277
|
const init = unparen(decl.initializer);
|
|
278
278
|
if (!ts.isCallExpression(init))
|
|
279
279
|
return null;
|
|
280
|
-
const info = mixinCallClassInfoOf(
|
|
280
|
+
const info = mixinCallClassInfoOf(lowerer, init);
|
|
281
281
|
if (info)
|
|
282
|
-
|
|
282
|
+
lowerer.classBySymbol.set(sym, info);
|
|
283
283
|
return info;
|
|
284
284
|
}
|
|
285
285
|
/** The heart: the ClassInfo a mixin CALL mints — one instantiation per
|
|
@@ -288,40 +288,40 @@ export function mixinResultBindingClassOf(L, sym) {
|
|
|
288
288
|
* expression's own lowering). Null when the callee is NOT a mixin
|
|
289
289
|
* function (the caller's own machinery and fences answer); every failure
|
|
290
290
|
* PAST recognition is a named diagnostic + poison. */
|
|
291
|
-
export function mixinCallClassInfoOf(
|
|
292
|
-
const cached =
|
|
291
|
+
export function mixinCallClassInfoOf(lowerer, call) {
|
|
292
|
+
const cached = lowerer.mixinInstanceByCall.get(call);
|
|
293
293
|
if (cached !== undefined) {
|
|
294
294
|
if (cached === null) {
|
|
295
295
|
// The first demand's diagnostics may have deferred under a class
|
|
296
296
|
// symbol nothing flushed — this site still needs a hard answer.
|
|
297
|
-
|
|
297
|
+
lowerer.unsupported("SC1090", call, "this mixin call (its instantiation failed to collect — see the instantiation's own diagnostics)");
|
|
298
298
|
}
|
|
299
299
|
return cached;
|
|
300
300
|
}
|
|
301
|
-
const shape = mixinFnOfCallee(
|
|
301
|
+
const shape = mixinFnOfCallee(lowerer, call.expression);
|
|
302
302
|
if (!shape)
|
|
303
303
|
return null;
|
|
304
304
|
try {
|
|
305
|
-
const info = instantiateMixinCall(
|
|
306
|
-
|
|
305
|
+
const info = instantiateMixinCall(lowerer, call, shape);
|
|
306
|
+
lowerer.mixinInstanceByCall.set(call, info);
|
|
307
307
|
return info;
|
|
308
308
|
}
|
|
309
309
|
catch (e) {
|
|
310
310
|
if (e instanceof PoisonError)
|
|
311
|
-
|
|
311
|
+
lowerer.mixinInstanceByCall.set(call, null);
|
|
312
312
|
throw e;
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
-
function instantiateMixinCall(
|
|
315
|
+
function instantiateMixinCall(lowerer, call, shape) {
|
|
316
316
|
// Reentrancy backstop: a cyclic base chain through const bindings would
|
|
317
317
|
// re-enter its own instantiation (the tsc gate rejects the cycles it
|
|
318
318
|
// sees; this turns anything it misses into a diagnostic, the
|
|
319
319
|
// class-expression rule).
|
|
320
|
-
if (
|
|
321
|
-
|
|
320
|
+
if (lowerer.mixinCollectingCalls.has(call)) {
|
|
321
|
+
lowerer.unsupported("SC1090", call, "mixin calls whose base chain re-enters their own instantiation (a cyclic extends)");
|
|
322
322
|
}
|
|
323
323
|
if (call.arguments.length !== 1 || ts.isSpreadElement(call.arguments[0])) {
|
|
324
|
-
|
|
324
|
+
lowerer.unsupported("SC1090", call, "mixin calls with anything but exactly one direct class argument");
|
|
325
325
|
}
|
|
326
326
|
// Evaluation-position fence: one immortal class object is exact only
|
|
327
327
|
// for once-evaluated calls. Function bodies (and class members) may run
|
|
@@ -331,30 +331,30 @@ function instantiateMixinCall(L, call, shape) {
|
|
|
331
331
|
let prev = call;
|
|
332
332
|
for (let p = call.parent; !ts.isSourceFile(p); prev = p, p = p.parent) {
|
|
333
333
|
if (ts.isFunctionLike(p) || ts.isClassStaticBlockDeclaration(p)) {
|
|
334
|
-
|
|
334
|
+
lowerer.unsupported("SC1090", call, "mixin calls inside functions (each call mints a DISTINCT class in JS — call the mixin at top level and bind or extend the result)");
|
|
335
335
|
}
|
|
336
336
|
if ((ts.isClassDeclaration(p) || ts.isClassExpression(p)) && !ts.isHeritageClause(prev)) {
|
|
337
|
-
|
|
337
|
+
lowerer.unsupported("SC1090", call, "mixin calls inside class members (they evaluate per instance/access — call the mixin at top level)");
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
|
-
const base = mixinBaseClassOf(
|
|
341
|
-
const instName =
|
|
342
|
-
const ordinal =
|
|
343
|
-
|
|
340
|
+
const base = mixinBaseClassOf(lowerer, call.arguments[0]);
|
|
341
|
+
const instName = lowerer.qualify(call.getSourceFile(), `%mx${call.getStart()}.${shape.classNode.name?.text ?? ""}`);
|
|
342
|
+
const ordinal = lowerer.mixinOrdinals.get(shape.classNode) ?? 0;
|
|
343
|
+
lowerer.mixinOrdinals.set(shape.classNode, ordinal + 1);
|
|
344
344
|
const bindings = new Map();
|
|
345
345
|
if (shape.paramTypeParam) {
|
|
346
346
|
bindings.set(shape.paramTypeParam, { kind: "classval", className: base.def.name });
|
|
347
347
|
}
|
|
348
348
|
const context = `instantiating mixin '${shape.name}' over '${base.def.jsName || base.def.name}'`;
|
|
349
|
-
const prevBindings =
|
|
350
|
-
const prevContext =
|
|
351
|
-
const prevMixinCtx =
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
349
|
+
const prevBindings = lowerer.typeParamBindings;
|
|
350
|
+
const prevContext = lowerer.instantiationContext;
|
|
351
|
+
const prevMixinCtx = lowerer.mixinTypeContext;
|
|
352
|
+
lowerer.typeParamBindings = bindings;
|
|
353
|
+
lowerer.instantiationContext = context;
|
|
354
|
+
lowerer.mixinTypeContext = { classNode: shape.classNode, className: instName };
|
|
355
|
+
lowerer.mixinCollectingCalls.add(call);
|
|
356
356
|
try {
|
|
357
|
-
|
|
357
|
+
lowerer.collectClassShapeInner(shape.classNode, undefined, undefined, {
|
|
358
358
|
base,
|
|
359
359
|
name: instName,
|
|
360
360
|
call,
|
|
@@ -364,24 +364,24 @@ function instantiateMixinCall(L, call, shape) {
|
|
|
364
364
|
});
|
|
365
365
|
}
|
|
366
366
|
finally {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
367
|
+
lowerer.typeParamBindings = prevBindings;
|
|
368
|
+
lowerer.instantiationContext = prevContext;
|
|
369
|
+
lowerer.mixinTypeContext = prevMixinCtx;
|
|
370
|
+
lowerer.mixinCollectingCalls.delete(call);
|
|
371
371
|
}
|
|
372
|
-
const info =
|
|
372
|
+
const info = lowerer.classes.get(instName);
|
|
373
373
|
if (!info)
|
|
374
374
|
throw new PoisonError(); // collection poisoned and reported
|
|
375
375
|
// Members lower in the shared monomorphization fixpoint (demand-driven,
|
|
376
376
|
// like generic-class instantiations — never wantBody-gated).
|
|
377
|
-
|
|
378
|
-
|
|
377
|
+
lowerer.genericClassInstances.push(info);
|
|
378
|
+
lowerer.onLateClassCollected?.(info);
|
|
379
379
|
// Pinned-position instantiations join the intersection resolver's
|
|
380
380
|
// registry (mixinIntersectionInstanceType).
|
|
381
381
|
if (pinnedMixinCallPosition(call)) {
|
|
382
|
-
const list =
|
|
382
|
+
const list = lowerer.mixinInstancesByClassNode.get(shape.classNode) ?? [];
|
|
383
383
|
list.push(info);
|
|
384
|
-
|
|
384
|
+
lowerer.mixinInstancesByClassNode.set(shape.classNode, list);
|
|
385
385
|
}
|
|
386
386
|
// Statics are declaration-time code: they run when THIS call evaluates.
|
|
387
387
|
// The supported positions put that point at one top-level statement of
|
|
@@ -392,7 +392,7 @@ function instantiateMixinCall(L, call, shape) {
|
|
|
392
392
|
if (info.staticFields.length > 0 || (info.staticBlocks?.length ?? 0) > 0) {
|
|
393
393
|
const holder = staticsEvalStatementOf(call);
|
|
394
394
|
if (!holder) {
|
|
395
|
-
|
|
395
|
+
lowerer.unsupported("SC1090", call, "mixin classes with static members outside a plain top-level position (their declaration-time code must run exactly where the call evaluates — bind the result in its own top-level `const X = M(Base)` statement, or extend the call directly in a top-level class declaration)");
|
|
396
396
|
}
|
|
397
397
|
if (info.mixinInstance) {
|
|
398
398
|
info.mixinInstance.statics = { sf: call.getSourceFile(), pos: holder.getStart() };
|
|
@@ -415,28 +415,28 @@ function instantiateMixinCall(L, call, shape) {
|
|
|
415
415
|
* names the type. Only instantiations from PINNED positions (const
|
|
416
416
|
* bindings, heritage clauses) participate: they are registered before
|
|
417
417
|
* any body lowers in BOTH passes, so discovery and emit answer alike. */
|
|
418
|
-
export function mixinIntersectionInstanceType(
|
|
418
|
+
export function mixinIntersectionInstanceType(lowerer, widened) {
|
|
419
419
|
const parts = widened.isIntersectionType() ? ts.constituentTypes(widened) : null;
|
|
420
|
-
if (!parts ||
|
|
420
|
+
if (!parts || lowerer.mixinInstancesByClassNode.size === 0)
|
|
421
421
|
return null;
|
|
422
422
|
const mixinParts = [];
|
|
423
423
|
const plainParts = [];
|
|
424
424
|
for (const part of parts) {
|
|
425
425
|
const sym = part.getSymbol();
|
|
426
|
-
const decl = sym ?
|
|
426
|
+
const decl = sym ? lowerer.checker.valueDeclarationOf(sym) : undefined;
|
|
427
427
|
const node = decl && (ts.isClassDeclaration(decl) || ts.isClassExpression(decl)) &&
|
|
428
|
-
|
|
428
|
+
lowerer.mixinInstancesByClassNode.has(decl)
|
|
429
429
|
? decl
|
|
430
430
|
: null;
|
|
431
431
|
if (node) {
|
|
432
432
|
// The STATIC side of a mixin class in an intersection (a construct
|
|
433
433
|
// signature) is not an instance part — decline the whole shape.
|
|
434
|
-
if (
|
|
434
|
+
if (lowerer.checker.getConstructSignatures(part).length > 0)
|
|
435
435
|
return null;
|
|
436
436
|
mixinParts.push(node);
|
|
437
437
|
continue;
|
|
438
438
|
}
|
|
439
|
-
const mapped =
|
|
439
|
+
const mapped = lowerer.mapTypeOf(part);
|
|
440
440
|
if (mapped?.kind !== "object")
|
|
441
441
|
return null;
|
|
442
442
|
plainParts.push(mapped.className);
|
|
@@ -450,7 +450,7 @@ export function mixinIntersectionInstanceType(L, widened) {
|
|
|
450
450
|
const matches = [];
|
|
451
451
|
for (let h = 0; h < mixinParts.length; h++) {
|
|
452
452
|
const restNodes = mixinParts.filter((_, i) => i !== h);
|
|
453
|
-
for (const cand of
|
|
453
|
+
for (const cand of lowerer.mixinInstancesByClassNode.get(mixinParts[h]) ?? []) {
|
|
454
454
|
// The candidate's structure: its mixin ancestors' class NODES, and
|
|
455
455
|
// the plain classes ANCHORING each mixin layer (the direct base
|
|
456
456
|
// where a layer sits on a named class) — exactly what the checker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower-mixins.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-mixins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lower-mixins.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-mixins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as ts from "../ts7/adapter.js";
|
|
2
2
|
import type { Lowerer } from "./lowerer.js";
|
|
3
|
-
import { IrClassDef, IrFunction, IrRecordShape, IrStmt, IrUnionDef } from "../../ir/
|
|
3
|
+
import { IrClassDef, IrFunction, IrRecordShape, IrStmt, IrUnionDef } from "../../ir/ir.js";
|
|
4
4
|
/** One file's declarations, split for collection and init-body lowering. */
|
|
5
5
|
export interface FileParts {
|
|
6
6
|
sf: ts.SourceFile;
|
|
@@ -13,13 +13,7 @@ export interface FileParts {
|
|
|
13
13
|
* postorder, entry last), computed by preflight. Single-file programs
|
|
14
14
|
* (tests, coverage on broken files) may arrive with an empty order — fall
|
|
15
15
|
* back to the entry alone. */
|
|
16
|
-
export declare function splitFiles(
|
|
17
|
-
/** A source file dynamic `import("<relative>")` can host as a COMPILED
|
|
18
|
-
* module namespace (lowerOwnModuleImport): a non-declaration program file
|
|
19
|
-
* that is not JSON and not CommonJS-flavored (a CJS namespace is built
|
|
20
|
-
* from module.exports through Node's lexer — a different surface with no
|
|
21
|
-
* static story here). Null for everything else. */
|
|
22
|
-
export declare function dynamicImportProgramTargetOf(program: ts.Program, sf: ts.SourceFile, spec: string): ts.SourceFile | null;
|
|
16
|
+
export declare function splitFiles(lowerer: Lowerer): FileParts[];
|
|
23
17
|
/** --dynamic builds: program modules reachable ONLY through dynamic
|
|
24
18
|
* `import()` join the compiled module graph — appended to `order` (before
|
|
25
19
|
* the entry, which stays last) in depth-first postorder over their own
|
|
@@ -42,7 +36,7 @@ export declare function appendDynamicImportModules(program: ts.Program, order: t
|
|
|
42
36
|
* cross-module references fall out for free. Runs in both passes —
|
|
43
37
|
* signatures are cheap and calls resolve against them; only BODY lowering
|
|
44
38
|
* is reachability-gated. */
|
|
45
|
-
export declare function collectProgram(
|
|
39
|
+
export declare function collectProgram(lowerer: Lowerer, parts: FileParts[]): void;
|
|
46
40
|
/** The npm-import chokepoint, run once per pass during collection (so
|
|
47
41
|
* bodies lowered in ANY pass resolve the bindings). In a static build
|
|
48
42
|
* every value-importing npm import reports the requires-dynamic
|
|
@@ -56,7 +50,7 @@ export declare function collectProgram(L: Lowerer, parts: FileParts[]): void;
|
|
|
56
50
|
* builds here too; its failures are ordinary diagnostics at the import
|
|
57
51
|
* site. Type-only imports are free either way: the .d.ts is a type
|
|
58
52
|
* surface, not code. */
|
|
59
|
-
export declare function collectNpmImports(
|
|
53
|
+
export declare function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void;
|
|
60
54
|
/** JSON module default imports (`import pkg from "../package.json"`):
|
|
61
55
|
* the document is DATA known at build time, so the binding bakes into a
|
|
62
56
|
* record global — the checker's structural type for the module (thanks
|
|
@@ -69,7 +63,7 @@ export declare function collectNpmImports(L: Lowerer, parts: FileParts[]): void;
|
|
|
69
63
|
* arrays, ...) report the standard unsupported-type diagnostic at the
|
|
70
64
|
* import site. Preflight already fenced named/namespace JSON imports
|
|
71
65
|
* and kept .json files out of the module order. */
|
|
72
|
-
export declare function collectJsonImports(
|
|
66
|
+
export declare function collectJsonImports(lowerer: Lowerer, parts: FileParts[]): void;
|
|
73
67
|
/** The classes, records, and unions the emitted module carries: exactly
|
|
74
68
|
* what the lowered functions and globals reference, closed transitively
|
|
75
69
|
* over record fields, union arms, class field types, base chains, and
|
|
@@ -81,18 +75,18 @@ export declare function collectJsonImports(L: Lowerer, parts: FileParts[]): void
|
|
|
81
75
|
* deferred: the reference flushes those diagnostics. Methods whose
|
|
82
76
|
* bodies were not lowered leave the def's method list, so vtable slots
|
|
83
77
|
* exist exactly for emitted overrides. */
|
|
84
|
-
export declare function moduleArtifacts(
|
|
78
|
+
export declare function moduleArtifacts(lowerer: Lowerer, functions: IrFunction[]): {
|
|
85
79
|
classes: IrClassDef[];
|
|
86
80
|
records: IrRecordShape[];
|
|
87
81
|
unions: IrUnionDef[];
|
|
88
82
|
};
|
|
89
|
-
export declare function collectGlobals(
|
|
83
|
+
export declare function collectGlobals(lowerer: Lowerer, sf: ts.SourceFile, topStmts: ts.Statement[]): void;
|
|
90
84
|
/** The checker's symbol for a module's default export — the symbol a
|
|
91
85
|
* default import of this module aliases to (getAliasedSymbol), so keying
|
|
92
86
|
* the default's global by it makes every importer resolve to the same
|
|
93
87
|
* storage through the ordinary globalOf path. Null for modules without
|
|
94
88
|
* a default export (or non-module files). */
|
|
95
|
-
export declare function defaultExportSymbolOf(
|
|
89
|
+
export declare function defaultExportSymbolOf(lowerer: Lowerer, sf: ts.SourceFile): ts.Symbol | null;
|
|
96
90
|
/** The declaration symbol of a top-level function/class declaration,
|
|
97
91
|
* covering the one legal NAMELESS form: `export default function () {}` /
|
|
98
92
|
* `export default class {}`. A named declaration answers through its
|
|
@@ -100,7 +94,7 @@ export declare function defaultExportSymbolOf(L: Lowerer, sf: ts.SourceFile): ts
|
|
|
100
94
|
* symbol (the binder declares it there), so collection, reachability,
|
|
101
95
|
* and body lowering all key that one identity — which is also what a
|
|
102
96
|
* default import's alias chain resolves to. */
|
|
103
|
-
export declare function declSymbolOf(
|
|
97
|
+
export declare function declSymbolOf(lowerer: Lowerer, decl: ts.FunctionDeclaration | ts.ClassDeclaration): ts.Symbol | undefined;
|
|
104
98
|
/** `export default <expr>` in a module's init body: the first (and only)
|
|
105
99
|
* assignment of the pre-registered `default` global — evaluated at the
|
|
106
100
|
* statement's source position, exactly where Node runs it (Node's
|
|
@@ -114,7 +108,7 @@ export declare function declSymbolOf(L: Lowerer, decl: ts.FunctionDeclaration |
|
|
|
114
108
|
* registration (collection reported the blocker) re-lowers the
|
|
115
109
|
* expression so the expression's OWN diagnostic wins when it has one,
|
|
116
110
|
* then poisons. */
|
|
117
|
-
export declare function lowerDefaultExport(
|
|
111
|
+
export declare function lowerDefaultExport(lowerer: Lowerer, stmt: ts.ExportAssignment): IrStmt | null;
|
|
118
112
|
/** One file's top-level statements as its init function — RUN-ONCE like a
|
|
119
113
|
* Node module body: non-entry inits open with a guard flag test (already
|
|
120
114
|
* ran → return) and set the flag before anything else, so every caller —
|
|
@@ -129,11 +123,11 @@ export declare function lowerDefaultExport(L: Lowerer, stmt: ts.ExportAssignment
|
|
|
129
123
|
* inline in the body. JSON-import bindings (pure data) load next; then
|
|
130
124
|
* the body. Top-level var statements assign the pre-registered globals
|
|
131
125
|
* instead of declaring locals. */
|
|
132
|
-
export declare function lowerFileInit(
|
|
126
|
+
export declare function lowerFileInit(lowerer: Lowerer, sf: ts.SourceFile, stmts: ts.Statement[], name: string): IrFunction;
|
|
133
127
|
/** %main is just the entry's %init call: Node's whole module evaluation
|
|
134
128
|
* order lives in the init functions themselves — each file's hoisted
|
|
135
129
|
* import header runs its dependencies first (depth-first postorder by
|
|
136
130
|
* nesting), CommonJS require statements call dependency inits inline in
|
|
137
131
|
* their bodies, and the run-once guards turn every revisit (diamonds,
|
|
138
132
|
* re-imports, re-requires) into a cache hit. */
|
|
139
|
-
export declare function buildMain(
|
|
133
|
+
export declare function buildMain(lowerer: Lowerer): IrFunction;
|