@scriptc/compiler 0.2.6 → 0.2.8
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 +7 -18
- package/dist/backend/cycle-analysis.d.ts +21 -9
- package/dist/backend/cycle-analysis.js +139 -67
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +283 -3
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +39 -0
- package/dist/backend/cycle-mutability.js +205 -0
- package/dist/backend/cycle-mutability.js.map +1 -0
- package/dist/backend/link-plan-core.d.ts +2 -1
- package/dist/backend/link-plan-core.js +15 -3
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +2 -1
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +43 -0
- package/dist/backend/llvm/alloc.js +246 -0
- package/dist/backend/llvm/alloc.js.map +1 -0
- package/dist/backend/llvm/alloc.test.d.ts +1 -0
- package/dist/backend/llvm/alloc.test.js +102 -0
- package/dist/backend/llvm/alloc.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +9 -0
- package/dist/backend/llvm/blocks.js +9 -0
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/borrowed-receivers.d.ts +7 -0
- package/dist/backend/llvm/borrowed-receivers.js +39 -0
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +18 -3
- package/dist/backend/llvm/call-lifetimes.js +54 -19
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +178 -3
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.d.ts +24 -0
- package/dist/backend/llvm/checked-narrows.js +108 -0
- package/dist/backend/llvm/checked-narrows.js.map +1 -0
- package/dist/backend/llvm/checked-narrows.test.d.ts +1 -0
- package/dist/backend/llvm/checked-narrows.test.js +208 -0
- package/dist/backend/llvm/checked-narrows.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +16 -1
- package/dist/backend/llvm/classes.js +60 -49
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +68 -6
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +13 -0
- package/dist/backend/llvm/common.js +30 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +19 -3
- package/dist/backend/llvm/constant-callbacks.js +289 -52
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +140 -3
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/debug-info.d.ts +6 -2
- package/dist/backend/llvm/debug-info.js +11 -1
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +29 -0
- package/dist/backend/llvm/dense-array-access.js +335 -0
- package/dist/backend/llvm/dense-array-access.js.map +1 -0
- package/dist/backend/llvm/dense-array-access.test.d.ts +1 -0
- package/dist/backend/llvm/dense-array-access.test.js +238 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +38 -0
- package/dist/backend/llvm/dyn.js +213 -14
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +308 -15
- package/dist/backend/llvm/emitter.js +1788 -206
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +89 -7
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +62 -8
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-async.test.d.ts +1 -0
- package/dist/backend/llvm/expr-async.test.js +62 -0
- package/dist/backend/llvm/expr-async.test.js.map +1 -0
- package/dist/backend/llvm/expr-bytes.d.ts +1 -1
- package/dist/backend/llvm/expr-bytes.js +85 -8
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +29 -21
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +5 -0
- package/dist/backend/llvm/expr-calls.js +118 -15
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +7 -1
- package/dist/backend/llvm/expr-containers.js +246 -32
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +113 -8
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +2 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +244 -44
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js +3 -8
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +93 -36
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +51 -3
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +31 -17
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +96 -29
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +6 -3
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-remainder.d.ts +11 -0
- package/dist/backend/llvm/integer-remainder.js +91 -0
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +3 -1
- package/dist/backend/llvm/layouts.js +3 -2
- package/dist/backend/llvm/layouts.js.map +1 -1
- package/dist/backend/llvm/lazy-captures.d.ts +16 -0
- package/dist/backend/llvm/lazy-captures.js +96 -0
- package/dist/backend/llvm/lazy-captures.js.map +1 -0
- package/dist/backend/llvm/lazy-captures.test.d.ts +1 -0
- package/dist/backend/llvm/lazy-captures.test.js +78 -0
- package/dist/backend/llvm/lazy-captures.test.js.map +1 -0
- package/dist/backend/llvm/lib-abi.js +10 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +10 -15
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +8 -8
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +1 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +5 -1
- package/dist/backend/llvm/local-array-reads.js +147 -26
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +85 -4
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +5 -1
- package/dist/backend/llvm/local-union-storage.js +54 -8
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +94 -6
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +18 -0
- package/dist/backend/llvm/map-number-lookup.js +62 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -0
- package/dist/backend/llvm/map-read-lifetimes.js +24 -3
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +39 -20
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/nullable-fields.d.ts +28 -0
- package/dist/backend/llvm/nullable-fields.js +45 -0
- package/dist/backend/llvm/nullable-fields.js.map +1 -0
- package/dist/backend/llvm/nullable-fields.test.d.ts +1 -0
- package/dist/backend/llvm/nullable-fields.test.js +48 -0
- package/dist/backend/llvm/nullable-fields.test.js.map +1 -0
- package/dist/backend/llvm/nullable-unions.d.ts +68 -0
- package/dist/backend/llvm/nullable-unions.js +132 -0
- package/dist/backend/llvm/nullable-unions.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +58 -0
- package/dist/backend/llvm/publish.js +286 -0
- package/dist/backend/llvm/publish.js.map +1 -0
- package/dist/backend/llvm/rebound-parameters.d.ts +12 -0
- package/dist/backend/llvm/rebound-parameters.js +72 -0
- package/dist/backend/llvm/rebound-parameters.js.map +1 -0
- package/dist/backend/llvm/rebound-parameters.test.d.ts +1 -0
- package/dist/backend/llvm/rebound-parameters.test.js +67 -0
- package/dist/backend/llvm/rebound-parameters.test.js.map +1 -0
- package/dist/backend/llvm/reference-effects.d.ts +18 -2
- package/dist/backend/llvm/reference-effects.js +106 -16
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-effects.test.js +52 -1
- package/dist/backend/llvm/reference-effects.test.js.map +1 -1
- package/dist/backend/llvm/serialized-ir-emission.test.d.ts +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js +52 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +104 -9
- package/dist/backend/llvm/shapes.js +356 -46
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +139 -5
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/stack-callbacks.js +2 -3
- package/dist/backend/llvm/stack-callbacks.js.map +1 -1
- package/dist/backend/llvm/stack-captures.d.ts +3 -1
- package/dist/backend/llvm/stack-captures.js +5 -3
- package/dist/backend/llvm/stack-captures.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +43 -3
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.d.ts +10 -0
- package/dist/backend/llvm/string-construction.js +42 -0
- package/dist/backend/llvm/string-construction.js.map +1 -1
- package/dist/backend/llvm/string-construction.test.js +1 -1
- package/dist/backend/llvm/string-key-hash.d.ts +15 -0
- package/dist/backend/llvm/string-key-hash.js +76 -0
- package/dist/backend/llvm/string-key-hash.js.map +1 -0
- package/dist/backend/llvm/string-key-hash.test.d.ts +1 -0
- package/dist/backend/llvm/string-key-hash.test.js +45 -0
- package/dist/backend/llvm/string-key-hash.test.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.test.js +65 -15
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +7 -0
- package/dist/backend/llvm/string-reads.js +76 -0
- package/dist/backend/llvm/string-reads.js.map +1 -0
- package/dist/backend/llvm/switch-dispatch.js +1 -1
- package/dist/backend/llvm/switch-dispatch.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +3 -3
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
- package/dist/backend/llvm/test-boxed-unions.d.ts +5 -0
- package/dist/backend/llvm/test-boxed-unions.js +13 -0
- package/dist/backend/llvm/test-boxed-unions.js.map +1 -0
- package/dist/backend/llvm/union-repr.d.ts +15 -0
- package/dist/backend/llvm/union-repr.js +89 -0
- package/dist/backend/llvm/union-repr.js.map +1 -0
- package/dist/backend/llvm/virtual-borrows.d.ts +31 -0
- package/dist/backend/llvm/virtual-borrows.js +82 -0
- package/dist/backend/llvm/virtual-borrows.js.map +1 -0
- package/dist/backend/llvm/walk-borrows.d.ts +43 -0
- package/dist/backend/llvm/walk-borrows.js +150 -0
- package/dist/backend/llvm/walk-borrows.js.map +1 -0
- package/dist/backend/llvm/walk-borrows.test.d.ts +1 -0
- package/dist/backend/llvm/walk-borrows.test.js +119 -0
- package/dist/backend/llvm/walk-borrows.test.js.map +1 -0
- package/dist/backend/llvm/walkers.d.ts +5 -1
- package/dist/backend/llvm/walkers.js +24 -21
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.d.ts +29 -1
- package/dist/backend/may-throw.js +349 -3
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +114 -2
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/cache-warm.d.ts +2 -1
- package/dist/backend/native/cache-warm.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +3 -2
- package/dist/backend/native/contracts.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +2 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-codegen-core.d.ts +7 -4
- package/dist/backend/native-codegen-core.js +14 -9
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +9 -0
- package/dist/backend/native-codegen.js +53 -2
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +64 -10
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +3 -2
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-link-info.d.ts +2 -1
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +2 -2
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +5 -1
- package/dist/backend/native-tools.js +3 -1
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/optimization.d.ts +25 -0
- package/dist/backend/optimization.js +21 -0
- package/dist/backend/optimization.js.map +1 -0
- package/dist/backend/optimization.test.d.ts +1 -0
- package/dist/backend/optimization.test.js +24 -0
- package/dist/backend/optimization.test.js.map +1 -0
- package/dist/backend/publication.d.ts +28 -0
- package/dist/backend/publication.js +155 -0
- package/dist/backend/publication.js.map +1 -0
- package/dist/backend/publication.test.d.ts +1 -0
- package/dist/backend/publication.test.js +72 -0
- package/dist/backend/publication.test.js.map +1 -0
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +15 -4
- package/dist/backend/runtime-pack-core.js +23 -12
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.d.ts +7 -3
- package/dist/backend/runtime-pack-native.js +0 -3
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.d.ts +20 -2
- package/dist/backend/runtime-pack.js +23 -0
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +115 -2
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/targets.d.ts +2 -1
- package/dist/backend/targets.js +1 -1
- package/dist/backend/targets.js.map +1 -1
- package/dist/cli/command.js +75 -11
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +2 -1
- package/dist/cli/usage.d.ts +4 -1
- package/dist/cli/usage.js +13 -3
- package/dist/cli/usage.js.map +1 -1
- package/dist/compile-types.d.ts +17 -5
- package/dist/coverage/report.d.ts +25 -2
- package/dist/coverage/report.js +161 -33
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +63 -0
- package/dist/coverage/verdict-cache.js +193 -0
- package/dist/coverage/verdict-cache.js.map +1 -0
- package/dist/coverage/verdict-cache.test.d.ts +1 -0
- package/dist/coverage/verdict-cache.test.js +52 -0
- package/dist/coverage/verdict-cache.test.js.map +1 -0
- package/dist/coverage/verdict-semantic.d.ts +2 -0
- package/dist/coverage/verdict-semantic.js +24 -0
- package/dist/coverage/verdict-semantic.js.map +1 -0
- package/dist/coverage/verdict-startup.d.ts +15 -0
- package/dist/coverage/verdict-startup.js +66 -0
- package/dist/coverage/verdict-startup.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +29 -1
- package/dist/diagnostics/diagnostic.js +84 -12
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +130 -0
- package/dist/diagnostics/envelope.js +257 -0
- package/dist/diagnostics/envelope.js.map +1 -0
- package/dist/diagnostics/envelope.test.d.ts +1 -0
- package/dist/diagnostics/envelope.test.js +91 -0
- package/dist/diagnostics/envelope.test.js.map +1 -0
- package/dist/diagnostics/render.d.ts +3 -0
- package/dist/diagnostics/render.js +13 -2
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +2 -2
- package/dist/executable/executable-cache.js +7 -4
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +20 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +4 -0
- package/dist/executable/prepare.js +7 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +1 -0
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +5 -49
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +30 -0
- package/dist/frontend/lowering/array-values.js +246 -1
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +17 -2
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.js +29 -1
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +10 -17
- package/dist/frontend/lowering/builtins/process.js +66 -29
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/workers.js +4 -2
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/caught-value-dispatch.d.ts +11 -0
- package/dist/frontend/lowering/caught-value-dispatch.js +87 -0
- package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -0
- package/dist/frontend/lowering/class-assertions.d.ts +12 -0
- package/dist/frontend/lowering/class-assertions.js +229 -5
- package/dist/frontend/lowering/class-assertions.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +3 -3
- package/dist/frontend/lowering/class-callbacks.js +18 -5
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +12 -6
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.d.ts +5 -0
- package/dist/frontend/lowering/class-method-mutations.js +472 -0
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.js +25 -5
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.js +8 -2
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-unions.d.ts +16 -0
- package/dist/frontend/lowering/class-unions.js +127 -0
- package/dist/frontend/lowering/class-unions.js.map +1 -0
- package/dist/frontend/lowering/coercions/builders.js +8 -1
- package/dist/frontend/lowering/coercions/builders.js.map +1 -1
- package/dist/frontend/lowering/coercions/function-adapters.js +2 -0
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/identity.d.ts +7 -0
- package/dist/frontend/lowering/coercions/identity.js +26 -0
- package/dist/frontend/lowering/coercions/identity.js.map +1 -0
- package/dist/frontend/lowering/coercions/state.d.ts +6 -0
- package/dist/frontend/lowering/coercions/state.js +2 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +9 -6
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +8 -0
- package/dist/frontend/lowering/coercions/unions.js +67 -2
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collation-repertoire.d.ts +1 -0
- package/dist/frontend/lowering/collation-repertoire.js +19 -0
- package/dist/frontend/lowering/collation-repertoire.js.map +1 -0
- package/dist/frontend/lowering/collection-narrowing.d.ts +6 -0
- package/dist/frontend/lowering/collection-narrowing.js +31 -0
- package/dist/frontend/lowering/collection-narrowing.js.map +1 -0
- package/dist/frontend/lowering/construction-escapes.d.ts +38 -0
- package/dist/frontend/lowering/construction-escapes.js +146 -0
- package/dist/frontend/lowering/construction-escapes.js.map +1 -0
- package/dist/frontend/lowering/construction-escapes.test.d.ts +1 -0
- package/dist/frontend/lowering/construction-escapes.test.js +150 -0
- package/dist/frontend/lowering/construction-escapes.test.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callback-call.d.ts +7 -0
- package/dist/frontend/lowering/containers/array-callback-call.js +52 -0
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +416 -65
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.d.ts +7 -0
- package/dist/frontend/lowering/containers/array-concat.js +130 -0
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -0
- package/dist/frontend/lowering/containers/array-construction.d.ts +2 -0
- package/dist/frontend/lowering/containers/array-construction.js +110 -5
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.d.ts +1 -11
- package/dist/frontend/lowering/containers/array-methods.js +274 -144
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +43 -1
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +10 -1
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +56 -70
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +7 -63
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +46 -0
- package/dist/frontend/lowering/cycle-initialization.js +303 -0
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -0
- package/dist/frontend/lowering/divergences.d.ts +9 -0
- package/dist/frontend/lowering/divergences.js +630 -0
- package/dist/frontend/lowering/divergences.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +178 -34
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +4 -4
- package/dist/frontend/lowering/expressions/union-field-write.js +54 -44
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.d.ts +20 -0
- package/dist/frontend/lowering/iterator-adapters.js +605 -0
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
- package/dist/frontend/lowering/lower-array-sort.js +44 -5
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-array-sort.test.js +31 -0
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.js +7 -0
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +1 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +8 -3
- package/dist/frontend/lowering/lower-calls.js +388 -278
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +6 -0
- package/dist/frontend/lowering/lower-classes.js +117 -65
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +22 -2
- package/dist/frontend/lowering/lower-exprs.js +811 -254
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +32 -19
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +19 -13
- package/dist/frontend/lowering/lower-generators.js +67 -44
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +29 -4
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +1 -1
- package/dist/frontend/lowering/lower-island.js +24 -7
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +100 -3
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +82 -64
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +115 -2
- package/dist/frontend/lowering/lowerer.js +1266 -88
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +3 -1
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-bounds.d.ts +19 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js +354 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.js +66 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +117 -0
- package/dist/frontend/lowering/runtime-optional-elements.js +738 -0
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-guards.d.ts +36 -0
- package/dist/frontend/lowering/runtime-optional-guards.js +375 -0
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-guards.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-guards.test.js +92 -0
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-ownership.d.ts +63 -0
- package/dist/frontend/lowering/runtime-optional-ownership.js +382 -0
- package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-provenance.d.ts +16 -0
- package/dist/frontend/lowering/runtime-optional-provenance.js +41 -0
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
- package/dist/frontend/lowering/strict-equality.d.ts +9 -0
- package/dist/frontend/lowering/strict-equality.js +116 -0
- package/dist/frontend/lowering/strict-equality.js.map +1 -0
- package/dist/frontend/lowering/string-index-bounds.d.ts +36 -0
- package/dist/frontend/lowering/string-index-bounds.js +537 -0
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -0
- package/dist/frontend/lowering/string-index-bounds.test.d.ts +1 -0
- package/dist/frontend/lowering/string-index-bounds.test.js +223 -0
- package/dist/frontend/lowering/string-index-bounds.test.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +3 -0
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/union-comparison.d.ts +5 -0
- package/dist/frontend/lowering/union-comparison.js +47 -0
- package/dist/frontend/lowering/union-comparison.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.d.ts +2 -0
- package/dist/frontend/lowering/union-narrow.js +10 -6
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +10 -0
- package/dist/frontend/program-analysis.js +7 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +63 -2
- package/dist/frontend/program.js +1038 -61
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +122 -6
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.d.ts +6 -0
- package/dist/frontend/resolve.js +14 -0
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/threads-import.d.ts +5 -0
- package/dist/frontend/threads-import.js +21 -0
- package/dist/frontend/threads-import.js.map +1 -0
- package/dist/frontend/type-mapper.d.ts +4 -1
- package/dist/frontend/type-mapper.js +161 -20
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +15 -3
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/worker-target.d.ts +4 -0
- package/dist/frontend/worker-target.js +8 -1
- package/dist/frontend/worker-target.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +70 -16
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +3 -1
- package/dist/ir/analysis.js +4 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/build.d.ts +5 -0
- package/dist/ir/build.js +7 -0
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +5 -3
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/initializer-bindings.test.js +1 -1
- package/dist/ir/int32-slots.d.ts +72 -0
- package/dist/ir/int32-slots.js +837 -0
- package/dist/ir/int32-slots.js.map +1 -0
- package/dist/ir/int32-slots.test.d.ts +1 -0
- package/dist/ir/int32-slots.test.js +222 -0
- package/dist/ir/int32-slots.test.js.map +1 -0
- package/dist/ir/integer-ranges.d.ts +19 -3
- package/dist/ir/integer-ranges.js +168 -23
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +74 -2
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +101 -20
- package/dist/ir/ir.js +20 -6
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +3 -3
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +8 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +139 -22
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +308 -8
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.test.js +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/library-cache.test.js +5 -5
- package/dist/library/library-profile.d.ts +2 -1
- package/dist/library/library-profile.js +4 -3
- package/dist/library/library-profile.js.map +1 -1
- package/dist/native/cache.d.ts +3 -0
- package/dist/native/cache.js +49 -1
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cache.test.js +21 -1
- package/dist/native/cache.test.js.map +1 -1
- package/dist/native/cli.js +1 -1
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.d.ts +5 -0
- package/dist/native/compiler.js +51 -4
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +2 -2
- package/dist/native/library.d.ts +2 -1
- package/dist/native/library.js.map +1 -1
- package/dist/native/prepare.d.ts +4 -0
- package/dist/native/prepare.js +28 -3
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.d.ts +3 -2
- package/dist/native/sanitizer.js +3 -13
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/startup-cache.d.ts +2 -0
- package/dist/startup-cache.js +2 -0
- package/dist/startup-cache.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +8 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { afterAll, expect, test } from "vitest";
|
|
5
|
+
import { analyze } from "../index.js";
|
|
6
|
+
import { analyzeWithVerdictCache } from "./verdict-cache.js";
|
|
7
|
+
import { commentOnlyReplay } from "./verdict-semantic.js";
|
|
8
|
+
const dir = mkdtempSync(join(tmpdir(), "scriptc-verdict-"));
|
|
9
|
+
afterAll(() => rmSync(dir, { recursive: true, force: true }));
|
|
10
|
+
test("unchanged and comment-only reruns replay the verdict; code edits relower", () => {
|
|
11
|
+
const entry = join(dir, "main.ts");
|
|
12
|
+
const program = `const pairs: [number, number][] = [[1, 2]];\nconst [[a, b]] = pairs;\nconsole.log(a + b);\nconst { length } = [1, 2] as number[];\nconsole.log(length);\n`;
|
|
13
|
+
writeFileSync(entry, program);
|
|
14
|
+
const entries = new Map();
|
|
15
|
+
const store = {
|
|
16
|
+
read: (k) => entries.get(k) ?? null,
|
|
17
|
+
write: (k, t) => void entries.set(k, t),
|
|
18
|
+
};
|
|
19
|
+
let lowered = 0;
|
|
20
|
+
const run = () => {
|
|
21
|
+
const { result, outcome } = analyzeWithVerdictCache(entry, {}, {
|
|
22
|
+
store,
|
|
23
|
+
identity: "test",
|
|
24
|
+
platform: process.platform,
|
|
25
|
+
semanticReplay: commentOnlyReplay,
|
|
26
|
+
}, () => {
|
|
27
|
+
lowered++;
|
|
28
|
+
return analyze(entry);
|
|
29
|
+
});
|
|
30
|
+
return { ...result, cache: outcome };
|
|
31
|
+
};
|
|
32
|
+
const first = run();
|
|
33
|
+
expect(first.cache).toBe("miss");
|
|
34
|
+
const blockerStart = first.coverage.diagnostics[0]?.loc.start;
|
|
35
|
+
expect(blockerStart).toBeDefined();
|
|
36
|
+
const second = run();
|
|
37
|
+
expect(second.cache).toBe("hit");
|
|
38
|
+
expect(lowered).toBe(1);
|
|
39
|
+
expect(second.coverage).toEqual(first.coverage);
|
|
40
|
+
// A comment edit shifts every location by the inserted text.
|
|
41
|
+
const prefix = "// a note about the pairs\n";
|
|
42
|
+
writeFileSync(entry, prefix + program);
|
|
43
|
+
const third = run();
|
|
44
|
+
expect(third.cache).toBe("semantic-hit");
|
|
45
|
+
expect(lowered).toBe(1);
|
|
46
|
+
expect(third.coverage.diagnostics[0].loc.start).toBe(blockerStart + prefix.length);
|
|
47
|
+
expect(third.sourceTexts.get(entry)).toBe(readFileSync(entry, "utf8"));
|
|
48
|
+
writeFileSync(entry, prefix + program + "console.log(1);\n");
|
|
49
|
+
expect(run().cache).toBe("miss");
|
|
50
|
+
expect(lowered).toBe(2);
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=verdict-cache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdict-cache.test.js","sourceRoot":"","sources":["../../src/coverage/verdict-cache.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* The Node frontend's semantic replay for the coverage verdict cache: an
|
|
2
|
+
* entry whose only changed inputs are TypeScript sources with the same
|
|
3
|
+
* tokens (comment-only edits) is reused, with its reported locations moved
|
|
4
|
+
* to the edited text. */
|
|
5
|
+
import { frontendInputsSemanticallyMatch } from "../frontend/input-tracker.js";
|
|
6
|
+
import { rebaseSourceLocations, semanticallyEqualSource } from "../library/semantic-source.js";
|
|
7
|
+
export const commentOnlyReplay = (probes, sources, coverage) => {
|
|
8
|
+
const previous = new Map();
|
|
9
|
+
for (const source of sources)
|
|
10
|
+
previous.set(source.path, source.text);
|
|
11
|
+
const match = frontendInputsSemanticallyMatch(probes, previous, semanticallyEqualSource);
|
|
12
|
+
if (match === null || match.changed.length === 0)
|
|
13
|
+
return null;
|
|
14
|
+
const current = new Map(previous);
|
|
15
|
+
for (const [path, text] of match.currentSources)
|
|
16
|
+
current.set(path, text);
|
|
17
|
+
const rebased = rebaseSourceLocations(structuredClone(coverage), previous, current);
|
|
18
|
+
return {
|
|
19
|
+
probes: match.snapshot,
|
|
20
|
+
sources: [...current].map(([path, text]) => ({ path, text })),
|
|
21
|
+
coverage: rebased,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=verdict-semantic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdict-semantic.js","sourceRoot":"","sources":["../../src/coverage/verdict-semantic.ts"],"names":[],"mappings":"AAAA;;;yBAGyB;AACzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG/F,MAAM,CAAC,MAAM,iBAAiB,GAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,+BAA+B,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACzF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpF,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,QAAQ;QACtB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,QAAQ,EAAE,OAAO;KAClB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AnalyzeOptions, AnalyzeResult } from "../compile-types.js";
|
|
2
|
+
/** The coverage cache directory under the build cache root, or null when
|
|
3
|
+
* caching is disabled or unavailable. */
|
|
4
|
+
export declare function coverageCacheDirectory(): Promise<string | null>;
|
|
5
|
+
/** The compiler package's content digest for coverage verdict keys. The
|
|
6
|
+
* digest hashes every byte of the package; a stat-only proof of the files
|
|
7
|
+
* it covered (inode, size, times) lets an unchanged installation reuse it
|
|
8
|
+
* without rereading the package. `hashIfStale` false answers null instead
|
|
9
|
+
* of hashing (the bootstrap then loads the full compiler). */
|
|
10
|
+
export declare function coverageCompilerIdentity(directory: string, hashIfStale?: boolean): Promise<{
|
|
11
|
+
digest: string;
|
|
12
|
+
} | null>;
|
|
13
|
+
/** An exact verdict-cache hit for `scriptc coverage`, or null (the caller
|
|
14
|
+
* then runs the full analysis, which also handles comment-only edits). */
|
|
15
|
+
export declare function readCoverageVerdict(entry: string, opts: AnalyzeOptions): Promise<AnalyzeResult | null>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* The startup-sized half of the coverage verdict cache: the compiler
|
|
2
|
+
* identity proof and an exact-hit replay, importable by the CLI bootstrap
|
|
3
|
+
* without loading the lowering graph. */
|
|
4
|
+
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
5
|
+
import { join, resolve } from "node:path";
|
|
6
|
+
import { prepareBuildCacheRoot, resolveBuildCacheRoot } from "../backend/build-cache.js";
|
|
7
|
+
import { configuredTargetPlatform } from "../backend/native-toolchain.js";
|
|
8
|
+
import { compilerImplementationDependenciesStillMatch, compilerImplementationIdentity, compilerImplementationRoot, } from "../library/compiler-self-identity.js";
|
|
9
|
+
import { replayVerdict, fileVerdictStore } from "./verdict-cache.js";
|
|
10
|
+
/** The coverage cache directory under the build cache root, or null when
|
|
11
|
+
* caching is disabled or unavailable. */
|
|
12
|
+
export async function coverageCacheDirectory() {
|
|
13
|
+
const root = await prepareBuildCacheRoot(resolveBuildCacheRoot());
|
|
14
|
+
return root === null ? null : join(root, "coverage-v1");
|
|
15
|
+
}
|
|
16
|
+
/** The compiler package's content digest for coverage verdict keys. The
|
|
17
|
+
* digest hashes every byte of the package; a stat-only proof of the files
|
|
18
|
+
* it covered (inode, size, times) lets an unchanged installation reuse it
|
|
19
|
+
* without rereading the package. `hashIfStale` false answers null instead
|
|
20
|
+
* of hashing (the bootstrap then loads the full compiler). */
|
|
21
|
+
export async function coverageCompilerIdentity(directory, hashIfStale = true) {
|
|
22
|
+
const proofPath = join(directory, "compiler-identity.json");
|
|
23
|
+
try {
|
|
24
|
+
const proof = JSON.parse(await readFile(proofPath, "utf8"));
|
|
25
|
+
if (proof.root === compilerImplementationRoot() &&
|
|
26
|
+
/^[0-9a-f]{64}$/.test(proof.digest) &&
|
|
27
|
+
(await compilerImplementationDependenciesStillMatch(proof.dependencies)))
|
|
28
|
+
return { digest: proof.digest };
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// No proof yet, or an unreadable one.
|
|
32
|
+
}
|
|
33
|
+
if (!hashIfStale)
|
|
34
|
+
return null;
|
|
35
|
+
const identity = await compilerImplementationIdentity(true);
|
|
36
|
+
try {
|
|
37
|
+
await mkdir(directory, { recursive: true, mode: 0o700 });
|
|
38
|
+
const stage = `${proofPath}.${process.pid}.tmp`;
|
|
39
|
+
await writeFile(stage, JSON.stringify({
|
|
40
|
+
root: compilerImplementationRoot(),
|
|
41
|
+
digest: identity.digest,
|
|
42
|
+
dependencies: identity.dependencies,
|
|
43
|
+
}));
|
|
44
|
+
await rename(stage, proofPath);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// The proof is an optimization; the digest stands without it.
|
|
48
|
+
}
|
|
49
|
+
return { digest: identity.digest };
|
|
50
|
+
}
|
|
51
|
+
/** An exact verdict-cache hit for `scriptc coverage`, or null (the caller
|
|
52
|
+
* then runs the full analysis, which also handles comment-only edits). */
|
|
53
|
+
export async function readCoverageVerdict(entry, opts) {
|
|
54
|
+
const directory = await coverageCacheDirectory();
|
|
55
|
+
if (directory === null)
|
|
56
|
+
return null;
|
|
57
|
+
const identity = await coverageCompilerIdentity(directory, false);
|
|
58
|
+
if (identity === null)
|
|
59
|
+
return null;
|
|
60
|
+
return replayVerdict(resolve(entry), opts, {
|
|
61
|
+
store: fileVerdictStore(directory),
|
|
62
|
+
identity: identity.digest,
|
|
63
|
+
platform: configuredTargetPlatform(),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=verdict-startup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdict-startup.js","sourceRoot":"","sources":["../../src/coverage/verdict-startup.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,11 +12,39 @@ export interface ScrDiagnostic {
|
|
|
12
12
|
* recognizably the profile's. Only library-mode refusals carry one —
|
|
13
13
|
* the text always arrives prefixed `from the '<profile name>' profile:`. */
|
|
14
14
|
note?: string;
|
|
15
|
+
/** SC0001 only: the TypeScript error comes from scriptc's own type world
|
|
16
|
+
* (its fixed library set, the bundled Node fallback types, or globals it
|
|
17
|
+
* does not declare) rather than from the project's own configuration —
|
|
18
|
+
* the error may not reproduce under the project's tsc. Machine-readable
|
|
19
|
+
* output reports these under the "environment" category. */
|
|
20
|
+
typeWorld?: boolean;
|
|
15
21
|
}
|
|
16
22
|
/** SC3002–SC3004 — native-helper target, installation, and execution
|
|
17
23
|
* failures. These are ordinary build diagnostics: a missing optional package
|
|
18
24
|
* or malformed LLVM input must never surface as an internal compiler error. */
|
|
19
25
|
export declare function nativeCodegenDiag(code: "SC3002" | "SC3003" | "SC3004", message: string, file: string): ScrDiagnostic;
|
|
26
|
+
/** SC6001 — a value passed to (or declared as) a narrower record type is
|
|
27
|
+
* copied field by field, and the program then writes through or compares
|
|
28
|
+
* the copy: under Node it is the same object, so the write would be
|
|
29
|
+
* visible to the original and `===` would be true. */
|
|
30
|
+
export declare function widthCopyDivergenceDiag(sourceType: string, targetType: string, use: "write" | "compare", useText: string, site: "call" | "declaration", loc: SrcLoc): ScrDiagnostic;
|
|
31
|
+
/** SC6002 — an object literal whose written key order differs from the
|
|
32
|
+
* order its declared type compiles to, for a type the program observes
|
|
33
|
+
* (JSON.stringify, Object.keys/values/entries, for-in, console output). */
|
|
34
|
+
export declare function keyOrderDivergenceDiag(typeText: string, nodeOrder: string, nativeOrder: string, detail: "reordered" | "added-later", loc: SrcLoc): ScrDiagnostic;
|
|
35
|
+
/** SC6003 — one-argument localeCompare over text outside the root-locale
|
|
36
|
+
* collation table the runtime carries: those characters compare by code
|
|
37
|
+
* point natively, where Node applies full ICU collation. */
|
|
38
|
+
export declare function localeCompareDivergenceDiag(text: string, loc: SrcLoc): ScrDiagnostic;
|
|
39
|
+
/** SC6004 — a call passes an instance of one class where the callee casts
|
|
40
|
+
* that parameter to an unrelated class: Node reads the members
|
|
41
|
+
* structurally, while scriptc checks class casts at runtime and throws a
|
|
42
|
+
* TypeError when the cast executes. */
|
|
43
|
+
export declare function unrelatedClassCastDivergenceDiag(source: string, target: string, loc: SrcLoc): ScrDiagnostic;
|
|
44
|
+
/** SC6005 — a Date string literal outside the grammar the native parser
|
|
45
|
+
* accepts (ISO 8601 with an explicit offset, date-only forms, and the
|
|
46
|
+
* certificate-time shape): Node parses many more forms. */
|
|
47
|
+
export declare function dateLiteralDivergenceDiag(text: string, loc: SrcLoc): ScrDiagnostic;
|
|
20
48
|
/** SC5001 — the outbound native-FFI manifest is malformed or unreadable. */
|
|
21
49
|
export declare function ffiProfileDiag(detail: string, profilePath: string): ScrDiagnostic;
|
|
22
50
|
/** SC5002 — a manifest binding must resolve to a signature-only ambient
|
|
@@ -195,7 +223,7 @@ export declare function requiresDynamicDiag(feature: string, loc: SrcLoc): ScrDi
|
|
|
195
223
|
* name the construct: the call RUNS under --dynamic (the engine executes
|
|
196
224
|
* it with JS-exact semantics); without the flag each use site reports the
|
|
197
225
|
* choice instead of ICEing or failing at link time. */
|
|
198
|
-
export declare function requiresDynamicApiDiag(feature: string, loc: SrcLoc): ScrDiagnostic;
|
|
226
|
+
export declare function requiresDynamicApiDiag(feature: string, loc: SrcLoc, hint?: string): ScrDiagnostic;
|
|
199
227
|
/** An npm package import in a static build. The package's shipped JS has
|
|
200
228
|
* exactly one execution home — the embedded engine — so the import itself
|
|
201
229
|
* "requires" (SC2010's voice); its own code so the coverage report can
|
|
@@ -11,6 +11,75 @@ export function nativeCodegenDiag(code, message, file) {
|
|
|
11
11
|
: {}),
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
+
/* ── SC6xxx: divergences from Node (warnings) ─────────────────────────── */
|
|
15
|
+
/** SC6001 — a value passed to (or declared as) a narrower record type is
|
|
16
|
+
* copied field by field, and the program then writes through or compares
|
|
17
|
+
* the copy: under Node it is the same object, so the write would be
|
|
18
|
+
* visible to the original and `===` would be true. */
|
|
19
|
+
export function widthCopyDivergenceDiag(sourceType, targetType, use, useText, site, loc) {
|
|
20
|
+
const how = site === "call"
|
|
21
|
+
? `passing a '${sourceType}' where '${targetType}' is expected`
|
|
22
|
+
: `storing a '${sourceType}' in a '${targetType}' binding`;
|
|
23
|
+
const effect = use === "write"
|
|
24
|
+
? `the write to '${useText}' updates only the copy, while under Node it updates the original object`
|
|
25
|
+
: `'${useText}' compares the copy, which is never the original object, while under Node it is the same object`;
|
|
26
|
+
return {
|
|
27
|
+
code: "SC6001",
|
|
28
|
+
message: `${how} copies the object (a narrower record shape compiles as a field copy): ${effect}`,
|
|
29
|
+
loc,
|
|
30
|
+
hint: `declare the parameter or binding with the value's full type ('${sourceType}'), or make the shape a class — class instances keep their identity when passed as a base class`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** SC6002 — an object literal whose written key order differs from the
|
|
34
|
+
* order its declared type compiles to, for a type the program observes
|
|
35
|
+
* (JSON.stringify, Object.keys/values/entries, for-in, console output). */
|
|
36
|
+
export function keyOrderDivergenceDiag(typeText, nodeOrder, nativeOrder, detail, loc) {
|
|
37
|
+
return {
|
|
38
|
+
code: "SC6002",
|
|
39
|
+
message: detail === "reordered"
|
|
40
|
+
? `this object's keys enumerate as '${nativeOrder}' natively (the declaration order of '${typeText}') but as '${nodeOrder}' under Node (insertion order), and the program observes the order (JSON.stringify, Object.keys, for-in or console output)`
|
|
41
|
+
: `a property this object leaves out is assigned later: under Node its keys then enumerate as '${nodeOrder}' (insertion order), natively as '${nativeOrder}' (the declaration order of '${typeText}'), and the program observes the order`,
|
|
42
|
+
loc,
|
|
43
|
+
hint: detail === "reordered"
|
|
44
|
+
? `write the properties in the declaration order of '${typeText}' (or reorder the declaration to match how objects are built)`
|
|
45
|
+
: `initialize the property in the literal (for example with undefined), or declare it after the properties the literal sets`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** SC6003 — one-argument localeCompare over text outside the root-locale
|
|
49
|
+
* collation table the runtime carries: those characters compare by code
|
|
50
|
+
* point natively, where Node applies full ICU collation. */
|
|
51
|
+
export function localeCompareDivergenceDiag(text, loc) {
|
|
52
|
+
const shown = text.length > 24 ? `${text.slice(0, 21)}...` : text;
|
|
53
|
+
return {
|
|
54
|
+
code: "SC6003",
|
|
55
|
+
message: `localeCompare over '${shown}' compares characters outside the built-in collation (Latin letters, digits, punctuation and symbols) by code point natively, while Node applies ICU's full collation`,
|
|
56
|
+
loc,
|
|
57
|
+
hint: "results agree with Node for Latin-script text; for other scripts compare explicitly (for example by code point with < and >) so both runtimes agree",
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** SC6004 — a call passes an instance of one class where the callee casts
|
|
61
|
+
* that parameter to an unrelated class: Node reads the members
|
|
62
|
+
* structurally, while scriptc checks class casts at runtime and throws a
|
|
63
|
+
* TypeError when the cast executes. */
|
|
64
|
+
export function unrelatedClassCastDivergenceDiag(source, target, loc) {
|
|
65
|
+
return {
|
|
66
|
+
code: "SC6004",
|
|
67
|
+
message: `this '${source}' reaches a cast to the unrelated class '${target}' in the callee: natively the checked cast throws a TypeError when it executes, while Node reads the members structurally`,
|
|
68
|
+
loc,
|
|
69
|
+
hint: `narrow with 'instanceof ${target}' before casting, or cast to a base class or interface both classes share`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/** SC6005 — a Date string literal outside the grammar the native parser
|
|
73
|
+
* accepts (ISO 8601 with an explicit offset, date-only forms, and the
|
|
74
|
+
* certificate-time shape): Node parses many more forms. */
|
|
75
|
+
export function dateLiteralDivergenceDiag(text, loc) {
|
|
76
|
+
return {
|
|
77
|
+
code: "SC6005",
|
|
78
|
+
message: `the date string '${text}' parses to an invalid date (NaN) natively, while Node accepts it (the native parser takes ISO 8601 date-times with an explicit offset, such as '2024-01-02T03:04:05Z', and date-only forms)`,
|
|
79
|
+
loc,
|
|
80
|
+
hint: "write the date in ISO 8601 with an explicit offset ('Z' or '+HH:MM'), or build it from numbers with Date.UTC",
|
|
81
|
+
};
|
|
82
|
+
}
|
|
14
83
|
/* ── SC5xxx: native FFI ───────────────────────────────────────────────── */
|
|
15
84
|
/** SC5001 — the outbound native-FFI manifest is malformed or unreadable. */
|
|
16
85
|
export function ffiProfileDiag(detail, profilePath) {
|
|
@@ -100,17 +169,19 @@ export const UNSUPPORTED = {
|
|
|
100
169
|
hint: "export declarations directly: export function f() {}",
|
|
101
170
|
},
|
|
102
171
|
SC1015: { feature: "dynamic import()", milestone: "M4" },
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
//
|
|
109
|
-
//
|
|
172
|
+
// ES-module cycles are ADMITTED and evaluate in Node's order: module
|
|
173
|
+
// bodies run depth-first, function declarations are callable from the
|
|
174
|
+
// start, and let/const bindings that can be read before their
|
|
175
|
+
// declaration carry an initialization check (Node's TDZ ReferenceError).
|
|
176
|
+
// SC1016 remains for the shapes without an exact representation —
|
|
177
|
+
// CommonJS members, top-level await, default-export expressions,
|
|
178
|
+
// namespace imports or re-exports of cycle members, and var or class
|
|
179
|
+
// bindings reachable before their declaration ran. The message names
|
|
180
|
+
// the offending construct.
|
|
110
181
|
SC1016: {
|
|
111
182
|
feature: "circular imports",
|
|
112
183
|
milestone: "later",
|
|
113
|
-
hint: "cycles of
|
|
184
|
+
hint: "ES-module cycles of let/const/function bindings compile as-is; rewrite the named construct (a named import instead of a namespace, a const instead of a default-export expression or var, a class declared before the code that can reach it) or break the named edge",
|
|
114
185
|
},
|
|
115
186
|
// Class DECLARATIONS shipped; SC1020's remaining use is class expressions.
|
|
116
187
|
SC1020: { feature: "class expressions", milestone: "later" },
|
|
@@ -625,13 +696,14 @@ export function requiresDynamicDiag(feature, loc) {
|
|
|
625
696
|
* name the construct: the call RUNS under --dynamic (the engine executes
|
|
626
697
|
* it with JS-exact semantics); without the flag each use site reports the
|
|
627
698
|
* choice instead of ICEing or failing at link time. */
|
|
628
|
-
export function requiresDynamicApiDiag(feature, loc) {
|
|
699
|
+
export function requiresDynamicApiDiag(feature, loc, hint) {
|
|
629
700
|
return {
|
|
630
701
|
code: "SC2012",
|
|
631
702
|
message: `${feature} runs in the embedded dynamic engine, which this build does not include`,
|
|
632
703
|
loc,
|
|
633
704
|
milestone: "M4",
|
|
634
|
-
hint:
|
|
705
|
+
hint: hint ??
|
|
706
|
+
"build with --dynamic to run this call in the embedded engine (adds ~620KB to the binary); static builds never include it",
|
|
635
707
|
};
|
|
636
708
|
}
|
|
637
709
|
/** An npm package import in a static build. The package's shipped JS has
|
|
@@ -644,7 +716,7 @@ export function requiresDynamicImportDiag(pkg, loc) {
|
|
|
644
716
|
message: `importing '${pkg}' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there`,
|
|
645
717
|
loc,
|
|
646
718
|
milestone: "M4",
|
|
647
|
-
hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary); static builds never include
|
|
719
|
+
hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine",
|
|
648
720
|
};
|
|
649
721
|
}
|
|
650
722
|
/** A USE SITE of a value whose type the package's .d.ts declares, in a
|
|
@@ -656,7 +728,7 @@ export function requiresDynamicPackageDiag(pkg, loc) {
|
|
|
656
728
|
message: `values from the '${pkg}' package run in the embedded dynamic engine, which this build does not include`,
|
|
657
729
|
loc,
|
|
658
730
|
milestone: "M4",
|
|
659
|
-
hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary); static builds never include
|
|
731
|
+
hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine",
|
|
660
732
|
};
|
|
661
733
|
}
|
|
662
734
|
/** Building the embedded npm runtime graph failed — the package's entry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { ScrDiagnostic } from "./diagnostic.js";
|
|
2
|
+
export declare const DIAGNOSTICS_SCHEMA = "scriptc-diagnostics";
|
|
3
|
+
export declare const DIAGNOSTICS_SCHEMA_VERSION = 1;
|
|
4
|
+
/** What kind of problem a diagnostic reports, independent of its code band:
|
|
5
|
+
* - invalid-source: the program itself is wrong (TypeScript errors, bad JSON modules)
|
|
6
|
+
* - unsupported: valid TypeScript/JavaScript scriptc cannot compile yet
|
|
7
|
+
* - dynamic-only: compiles when the build embeds the dynamic engine (--dynamic)
|
|
8
|
+
* - divergence: compiles, but the native program behaves differently from Node
|
|
9
|
+
* - environment: project configuration, scriptc's type world, toolchain or target
|
|
10
|
+
* - internal: a compiler bug */
|
|
11
|
+
export type DiagnosticCategory = "invalid-source" | "unsupported" | "dynamic-only" | "divergence" | "environment" | "internal";
|
|
12
|
+
/** Where the diagnostic was found:
|
|
13
|
+
* - preflight: before lowering (type checking, configuration, module graph)
|
|
14
|
+
* - reached: code the entry path reaches (fails a build)
|
|
15
|
+
* - unreached: code nothing on the entry path reaches (cannot fail a build)
|
|
16
|
+
* - deferred: a JavaScript statement that compiles to a throw of this
|
|
17
|
+
* diagnostic when it executes */
|
|
18
|
+
export type DiagnosticScope = "preflight" | "reached" | "unreached" | "deferred";
|
|
19
|
+
export interface SourcePosition {
|
|
20
|
+
file: string;
|
|
21
|
+
/** 1-based line and UTF-16 column. */
|
|
22
|
+
line: number;
|
|
23
|
+
column: number;
|
|
24
|
+
}
|
|
25
|
+
export interface LocatedDiagnostic extends SourcePosition {
|
|
26
|
+
code: string;
|
|
27
|
+
category: DiagnosticCategory;
|
|
28
|
+
severity: "error" | "warning";
|
|
29
|
+
scope: DiagnosticScope;
|
|
30
|
+
endLine: number;
|
|
31
|
+
endColumn: number;
|
|
32
|
+
/** 0-based UTF-16 offsets into the file. */
|
|
33
|
+
start: number;
|
|
34
|
+
end: number;
|
|
35
|
+
message: string;
|
|
36
|
+
/** Always present: the diagnostic's own hint, or the code family's. */
|
|
37
|
+
hint: string;
|
|
38
|
+
/** The id of the root-cause group this site belongs to. */
|
|
39
|
+
group: string;
|
|
40
|
+
}
|
|
41
|
+
export interface DiagnosticGroup {
|
|
42
|
+
id: string;
|
|
43
|
+
code: string;
|
|
44
|
+
category: DiagnosticCategory;
|
|
45
|
+
severity: "error" | "warning";
|
|
46
|
+
scope: DiagnosticScope;
|
|
47
|
+
/** The message with per-instantiation type arguments collapsed. */
|
|
48
|
+
message: string;
|
|
49
|
+
hint: string;
|
|
50
|
+
count: number;
|
|
51
|
+
/** The first site in source order: the place to start fixing. */
|
|
52
|
+
primary: SourcePosition;
|
|
53
|
+
/** Every site in source order (primary included). */
|
|
54
|
+
sites: SourcePosition[];
|
|
55
|
+
}
|
|
56
|
+
export interface DiagnosticsEnvelope {
|
|
57
|
+
schema: typeof DIAGNOSTICS_SCHEMA;
|
|
58
|
+
schemaVersion: typeof DIAGNOSTICS_SCHEMA_VERSION;
|
|
59
|
+
compilerVersion: string;
|
|
60
|
+
command: "coverage" | "build";
|
|
61
|
+
entry: string;
|
|
62
|
+
/** coverage: no reached blockers (and, with --fail-on=divergences, no
|
|
63
|
+
* divergences); build: an artifact was produced. */
|
|
64
|
+
success: boolean;
|
|
65
|
+
/** How far the command got: "preflight" when it stopped there,
|
|
66
|
+
* "compile" when blockers remain, "native" when native code generation
|
|
67
|
+
* or linking failed, "complete" otherwise. */
|
|
68
|
+
phase: "preflight" | "compile" | "native" | "complete";
|
|
69
|
+
stats?: {
|
|
70
|
+
statementsTotal: number;
|
|
71
|
+
statementsStatic: number;
|
|
72
|
+
statementsDynamic: number;
|
|
73
|
+
statementsFailed: number;
|
|
74
|
+
functionsSkipped: number;
|
|
75
|
+
percentStatic: number;
|
|
76
|
+
};
|
|
77
|
+
/** build only: the produced artifact path. */
|
|
78
|
+
artifact?: string;
|
|
79
|
+
groups: DiagnosticGroup[];
|
|
80
|
+
diagnostics: LocatedDiagnostic[];
|
|
81
|
+
}
|
|
82
|
+
/** Codes whose construct RUNS under --dynamic (the embedded engine). */
|
|
83
|
+
export declare const DYNAMIC_CAPABLE_CODES: ReadonlySet<string>;
|
|
84
|
+
/** The divergence band: compiles, but the program can behave differently
|
|
85
|
+
* from Node. Warnings, never build failures. */
|
|
86
|
+
export declare function isDivergenceCode(code: string): boolean;
|
|
87
|
+
export declare function categoryOf(diag: ScrDiagnostic): DiagnosticCategory;
|
|
88
|
+
/** Code-family guidance for diagnostics whose construct site has no
|
|
89
|
+
* specific hint: every group the report prints and every envelope entry
|
|
90
|
+
* carries one. */
|
|
91
|
+
export declare function hintOf(diag: ScrDiagnostic): string;
|
|
92
|
+
/** The root-cause text of a message: type arguments of instantiated generic
|
|
93
|
+
* types collapse to `<…>`, so every instantiation of one uncompilable
|
|
94
|
+
* declaration lands in one group. Component fences (SC2009) group on the
|
|
95
|
+
* named component alone — the outer container type repeats per use. */
|
|
96
|
+
export declare function rootCauseMessage(diag: ScrDiagnostic): string;
|
|
97
|
+
export declare function groupId(diag: ScrDiagnostic, scope: DiagnosticScope): string;
|
|
98
|
+
/** Offset → line/column over a source text, with the line table cached
|
|
99
|
+
* per file. Files missing from the analysis' sources are read from disk;
|
|
100
|
+
* a file that cannot be read reports line 1 with the raw offset as column. */
|
|
101
|
+
export declare class SourceLocator {
|
|
102
|
+
private readonly sources;
|
|
103
|
+
private readonly lineStarts;
|
|
104
|
+
constructor(sources?: ReadonlyMap<string, string>);
|
|
105
|
+
private starts;
|
|
106
|
+
position(file: string, offset: number): {
|
|
107
|
+
line: number;
|
|
108
|
+
column: number;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export declare function locateDiagnostic(diag: ScrDiagnostic, scope: DiagnosticScope, locator: SourceLocator): LocatedDiagnostic;
|
|
112
|
+
/** Root-cause groups over located diagnostics, in input order of first
|
|
113
|
+
* appearance; sites inside each group are in source order. */
|
|
114
|
+
export declare function groupDiagnostics(diags: readonly ScrDiagnostic[], scope: DiagnosticScope, locator: SourceLocator): {
|
|
115
|
+
located: LocatedDiagnostic[];
|
|
116
|
+
groups: DiagnosticGroup[];
|
|
117
|
+
};
|
|
118
|
+
export declare function comparePositions(a: SourcePosition, b: SourcePosition): number;
|
|
119
|
+
/** The versioned machine-readable form of a build's outcome
|
|
120
|
+
* (`scriptc build --print=diagnostics`). Build diagnostics are all reached
|
|
121
|
+
* (or preflight) errors; divergence warnings ride along on success. */
|
|
122
|
+
export declare function buildEnvelope(opts: {
|
|
123
|
+
compilerVersion: string;
|
|
124
|
+
entry: string;
|
|
125
|
+
ok: boolean;
|
|
126
|
+
artifact?: string;
|
|
127
|
+
diagnostics: readonly ScrDiagnostic[];
|
|
128
|
+
warnings?: readonly ScrDiagnostic[];
|
|
129
|
+
sourceTexts?: ReadonlyMap<string, string>;
|
|
130
|
+
}): DiagnosticsEnvelope;
|