v0.1.69
What's Changed
- test(checker): re-pin ts2683 expando fixture red on main after #17230; cross-file + class-expr coverage for the emptiness rule by @mohsen1 in #17232
- fix(solver): bare unannotated JS params display as required, not optional by @mohsen1 in #17233
- fix(checker,binder): restore two red main unit tests (query-boundary import, void-zero expando) by @mohsen1 in #17237
- fix(checker): typeof-import TS2694 names a crossed export= alias by its own module by @mohsen1 in #17234
- fix(checker,solver): spread-derived JS receiver stays closed without noImplicitAny (#17226 gap 3) by @mohsen1 in #17240
- fix(binder,checker): expando members bind only in the host's declaring file by @mohsen1 in #17242
- fix(binder,checker): nested JS expando member requires a host-shaped declaring RHS (#17226 gap 1) by @mohsen1 in #17241
- fix(binder): restore assignment-RHS threading dropped by the #17241/#17242 semantic merge conflict by @mohsen1 in #17245
- fix(emitter): bare untyped-JS parameter .d.ts-emits as required, not optional (#17238) by @mohsen1 in #17249
- fix(checker): whole-module require alias TS1282/1283 pick uses the module's export= target (#17235) by @mohsen1 in #17248
- fix(parser): wire TS1155 — const/using/await using declarations must be initialized by @mohsen1 in #17251
- fix(checker): prototype-literal closure is gated by noImplicitAny, not constructor evidence (#17226 gap 2) by @mohsen1 in #17244
- fix(cli/checker): TS1155 is a parser grammar code, not a real/structural parse error (#17253) by @mohsen1 in #17256
- test(cli): whole-range guard that no parser grammar code is a real/structural parse error (#17253 follow-up) by @mohsen1 in #17257
- bench: ratchet the project-fixture any-stub erosion (#16311) by @mohsen1 in #17259
- fix(emitter): preserve typeof-symbol references outside variable-initializer position in DTS emit by @mohsen1 in #17260
- fix(solver): union2 must mint the same canonical identity as union (#14344) by @mohsen1 in #17266
- fix(emitter): typeof in DTS requires the name be emit-visible (#17262) by @mohsen1 in #17268
- fix(emitter): DTS method-signature printer preserves an explicit this parameter by @mohsen1 in #17265
- fix(emitter): JSDoc bracket optionality adds no undefined; the {T=} marker owns it (#17238 follow-up) by @mohsen1 in #17264
- fix(checker): decorator-scope exclusion filters must stop at a function boundary by @mohsen1 in #17261
- fix(checker): JSDoc type-position spelling suggestions stop crossing symbol meaning by @mohsen1 in #17271
- fix(emitter): stop DTS this-param test from tripping the solver-access ratchet by @mohsen1 in #17272
- fix(parser/checker): duplicate
declareon a class member reports TS1030 by @mohsen1 in #17275 - fix(emitter): DTS return type of a function returning a
...restobject-rest binding is the rest type, not the whole annotation by @mohsen1 in #17277 - fix(emitter): parse every JSDoc tag on a physical line, not just the first by @mohsen1 in #17274
- fix(emitter): gate DTS typeof-name on emit-visibility via a shared value-scope walk by @mohsen1 in #17279
- perf(solver): make normalize_union honor the #15809 literal-default flag by @mohsen1 in #17283
- fix(emitter): parse same-line JSDoc tags in @overload blocks and typedef @Property lists by @mohsen1 in #17284
- test(emitter): unit-pin the DTS typeof emit-visibility gate (#17262 follow-up) by @mohsen1 in #17278
- fix(checker): TS2412 target type reduces an absorbable intersection for display by @mohsen1 in #17286
- fix(emit): spell qualified
typeofreferences for callable value symbols (#17281) by @mohsen1 in #17288 - fix(checker): TS1071 for every illegal modifier on a class index signature (#17280) by @mohsen1 in #17287
- simplify(emit): route return-position typeof through the shared gateway (follow-up to #17288) by @mohsen1 in #17293
- fix(emitter): terminate a typedef's @Property list at the first foreign tag by @mohsen1 in #17290
- fix(checker): if(true){throw} with no else stays unreachable-terminating by @mohsen1 in #17294
- tech-debt(arch): freeze FILE_LINE_LIMIT_CHECKS ceilings above the 2000-line contract limit by @mohsen1 in #17296
- ci: bump taiki-e/install-action from 2.85.7 to 2.85.11 in the actions-minor-patch group by @dependabot[bot] in #17297
- ci: bump Swatinem/rust-cache from e18b497796c12c097a38f9edb9d0641fb99eee32 to 258712b0b7b1ddf8bddc9fc3b0faca682b2736c3 by @dependabot[bot] in #17298
- fix(checker): constant-condition reachability tests the condition node as written by @mohsen1 in #17300
- fix(website): exclude did-not-finish rows from benchmark speed ratios (#16196) by @mohsen1 in #17301
- fix(checker): namespace bodies get their own TS7027 reachability flow by @mohsen1 in #17303
- fix(checker): make the checker the single owner of interface-heritage TS2499 by @mohsen1 in #17305
- refactor(bench): one canonical speed-ratio-eligible gate across timing-pair sites by @mohsen1 in #17307
- fix(binder,checker): function type parameters collide with top-level local types by @mohsen1 in #17306
- fix(checker): a dead if/else branch reports TS7027 again, not just the code after it by @mohsen1 in #17309
- fix(emitter): emit every @typedef/@callback alias a JSDoc block declares by @mohsen1 in #17311
- fix(checker): TS2320 sees properties inherited through a non-interface ancestor by @mohsen1 in #17310
- fix(solver): a Round-1 type-parameter fix is not widened by callback candidates (#17282) by @mohsen1 in #17316
- fix(checker): report TS18016/TS1451 for standalone private-identifier expressions by @mohsen1 in #17320
- fix(checker): a break to a label on an enclosing try/block completes past it by @mohsen1 in #17321
- revert: #17316 over-fixes type parameters (conformance 11603 -> 11597) by @mohsen1 in #17323
- fix(solver,checker): check every source property against a target index signature by @mohsen1 in #17325
- fix(checker): recognize break-to-own-label as a valid statement completion by @mohsen1 in #17324
- fix(checker): stop reporting TS1223 for duplicate JSDoc @Satisfies tags by @mohsen1 in #17327
- test(checker): wire up two orphaned test files that never ran by @mohsen1 in #17329
- fix(parser): report TS1508 for bare v-mode class-set syntax characters by @mohsen1 in #17334
- fix(checker): type-parameter modifier grammar is first-error-wins per parameter by @mohsen1 in #17338
- fix(checker): destructuring write-target anchors render the computed source type; iterable sources judge every element by @mohsen1 in #17336
- fix(parser): validate ClassSetCharacters inside a v-mode \q{...} disjunction by @mohsen1 in #17341
- fix(checker): honor synthetic-default suppression for named
defaultimport specifiers by @mohsen1 in #17340 - fix(checker,binder): TS expando hosts require const function/arrow, never a class by @mohsen1 in #17345
- fix(parser): using/await using lookahead honors ASI and rejects reserved binding names by @mohsen1 in #17347
- fix(checker): TS4112 for an
overrideclass index signature with no base class by @mohsen1 in #17346 - fix(solver): count well-known-symbol members in missing-property lists; exempt Object.prototype members by @mohsen1 in #17343
- fix(checker): a CommonJS export-property write never conflicts with a same-name JSDoc typedef by @mohsen1 in #17349
- fix(checker): synthesize esModuleInterop default for CJS module.exports=value re-exports by @mohsen1 in #17348
- fix(solver/checker): report a merged interface reference's missing properties flat, not as an intersection target by @mohsen1 in #17350
- fix(solver): don't let a callback body widen a Round-1-fixed type parameter (#17282) by @mohsen1 in #17354
- fix(checker): typeof import(...) strips the source extension even for same-file CommonJS diagnostics by @mohsen1 in #17352
- fix(checker): TS18016 for a private-identifier object-literal key in JS files by @mohsen1 in #17356
- fix(checker): synthetic default needs the interop flag and a non-TS-source target by @mohsen1 in #17357
- fix(lsp): import-fix newline insertion defaults to LF, not CRLF by @mohsen1 in #17359
- fix(solver): Function-extending interface with an extra data member isn't Function by @mohsen1 in #17358
- chore(readme): refresh benchmark image and stats by @mohsen1 in #17360
- fix(checker): merge cross-file lib interface declarations in lib load order by @mohsen1 in #17361
- fix(checker): anchor TS2769 at the last overload candidate's elaborated failing element by @mohsen1 in #17353
- fix(parser): report TS1109 for a missing embedded statement body by @mohsen1 in #17366
- fix(checker): a TS destructuring-parameter leaf with an empty-array default is not implicit-any by @mohsen1 in #17362
- fix(checker): resolve a Closure
function(...)JSDoc type to the globalFunctionby @mohsen1 in #17371 - fix(checker): a JS const/var never declaration-merges with a class by @mohsen1 in #17368
- fix(checker): match tsc's super-property accessibility precedence (TS2340/TS2341/TS2855) by @mohsen1 in #17369
- fix(lsp): offer relative fallback for conditionally ambiguous package imports by @mohsen1 in #17375
- fix(checker): a bare namespace's typeof type has no implicit prototype member by @mohsen1 in #17372
- test(checker): pin tsc missing-property order for Set/Promise/ReadonlyMap merged lib generics by @mohsen1 in #17377
- fix(checker): a JS
.prototype = ...write requires a callable/constructible root by @mohsen1 in #17378 - fix(checker): an unannotated implicit-any var is not possibly-undefined when noImplicitAny is off by @mohsen1 in #17382
- fix(solver): rank incompatible array-element primitives by TS7 TypeFlags, not source order by @mohsen1 in #17380
- fix(lsp): force extension on relative import specifiers under node16/nodenext ESM by @mohsen1 in #17379
- fix(checker): a prior JS declaration establishes the merged global's type for cross-file TS2403 by @mohsen1 in #17381
- chore(release): bump try-tsz publish version to 0.1.69 by @mohsen1 in #17374
Full Changelog: v0.1.68...v0.1.69
What's Changed
- test(checker): re-pin ts2683 expando fixture red on main after #17230; cross-file + class-expr coverage for the emptiness rule by @mohsen1 in #17232
- fix(solver): bare unannotated JS params display as required, not optional by @mohsen1 in #17233
- fix(checker,binder): restore two red main unit tests (query-boundary import, void-zero expando) by @mohsen1 in #17237
- fix(checker): typeof-import TS2694 names a crossed export= alias by its own module by @mohsen1 in #17234
- fix(checker,solver): spread-derived JS receiver stays closed without noImplicitAny (#17226 gap 3) by @mohsen1 in #17240
- fix(binder,checker): expando members bind only in the host's declaring file by @mohsen1 in #17242
- fix(binder,checker): nested JS expando member requires a host-shaped declaring RHS (#17226 gap 1) by @mohsen1 in #17241
- fix(binder): restore assignment-RHS threading dropped by the #17241/#17242 semantic merge conflict by @mohsen1 in #17245
- fix(emitter): bare untyped-JS parameter .d.ts-emits as required, not optional (#17238) by @mohsen1 in #17249
- fix(checker): whole-module require alias TS1282/1283 pick uses the module's export= target (#17235) by @mohsen1 in #17248
- fix(parser): wire TS1155 — const/using/await using declarations must be initialized by @mohsen1 in #17251
- fix(checker): prototype-literal closure is gated by noImplicitAny, not constructor evidence (#17226 gap 2) by @mohsen1 in #17244
- fix(cli/checker): TS1155 is a parser grammar code, not a real/structural parse error (#17253) by @mohsen1 in #17256
- test(cli): whole-range guard that no parser grammar code is a real/structural parse error (#17253 follow-up) by @mohsen1 in #17257
- bench: ratchet the project-fixture any-stub erosion (#16311) by @mohsen1 in #17259
- fix(emitter): preserve typeof-symbol references outside variable-initializer position in DTS emit by @mohsen1 in #17260
- fix(solver): union2 must mint the same canonical identity as union (#14344) by @mohsen1 in #17266
- fix(emitter): typeof in DTS requires the name be emit-visible (#17262) by @mohsen1 in #17268
- fix(emitter): DTS method-signature printer preserves an explicit this parameter by @mohsen1 in #17265
- fix(emitter): JSDoc bracket optionality adds no undefined; the {T=} marker owns it (#17238 follow-up) by @mohsen1 in #17264
- fix(checker): decorator-scope exclusion filters must stop at a function boundary by @mohsen1 in #17261
- fix(checker): JSDoc type-position spelling suggestions stop crossing symbol meaning by @mohsen1 in #17271
- fix(emitter): stop DTS this-param test from tripping the solver-access ratchet by @mohsen1 in #17272
- fix(parser/checker): duplicate
declareon a class member reports TS1030 by @mohsen1 in #17275 - fix(emitter): DTS return type of a function returning a
...restobject-rest binding is the rest type, not the whole annotation by @mohsen1 in #17277 - fix(emitter): parse every JSDoc tag on a physical line, not just the first by @mohsen1 in #17274
- fix(emitter): gate DTS typeof-name on emit-visibility via a shared value-scope walk by @mohsen1 in #17279
- perf(solver): make normalize_union honor the #15809 literal-default flag by @mohsen1 in #17283
- fix(emitter): parse same-line JSDoc tags in @overload blocks and typedef @Property lists by @mohsen1 in #17284
- test(emitter): unit-pin the DTS typeof emit-visibility gate (#17262 follow-up) by @mohsen1 in #17278
- fix(checker): TS2412 target type reduces an absorbable intersection for display by @mohsen1 in #17286
- fix(emit): spell qualified
typeofreferences for callable value symbols (#17281) by @mohsen1 in #17288 - fix(checker): TS1071 for every illegal modifier on a class index signature (#17280) by @mohsen1 in #17287
- simplify(emit): route return-position typeof through the shared gateway (follow-up to #17288) by @mohsen1 in #17293
- fix(emitter): terminate a typedef's @Property list at the first foreign tag by @mohsen1 in #17290
- fix(checker): if(true){throw} with no else stays unreachable-terminating by @mohsen1 in #17294
- tech-debt(arch): freeze FILE_LINE_LIMIT_CHECKS ceilings above the 2000-line contract limit by @mohsen1 in #17296
- ci: bump taiki-e/install-action from 2.85.7 to 2.85.11 in the actions-minor-patch group by @dependabot[bot] in #17297
- ci: bump Swatinem/rust-cache from e18b497796c12c097a38f9edb9d0641fb99eee32 to 258712b0b7b1ddf8bddc9fc3b0faca682b2736c3 by @dependabot[bot] in #17298
- fix(checker): constant-condition reachability tests the condition node as written by @mohsen1 in #17300
- fix(website): exclude did-not-finish rows from benchmark speed ratios (#16196) by @mohsen1 in #17301
- fix(checker): namespace bodies get their own TS7027 reachability flow by @mohsen1 in #17303
- fix(checker): make the checker the single owner of interface-heritage TS2499 by @mohsen1 in #17305
- refactor(bench): one canonical speed-ratio-eligible gate across timing-pair sites by @mohsen1 in #17307
- fix(binder,checker): function type parameters collide with top-level local types by @mohsen1 in #17306
- fix(checker): a dead if/else branch reports TS7027 again, not just the code after it by @mohsen1 in #17309
- fix(emitter): emit every @typedef/@callback alias a JSDoc block declares by @mohsen1 in #17311
- fix(checker): TS2320 sees properties inherited through a non-interface ancestor by @mohsen1 in #17310
- fix(solver): a Round-1 type-parameter fix is not widened by callback candidates (#17282) by @mohsen1 in #17316
- fix(checker): report TS18016/TS1451 for standalone private-identifier expressions by @mohsen1 in #17320
- fix(checker): a break to a label on an enclosing try/block completes past it by @mohsen1 in #17321
- revert: #17316 over-fixes type parameters (conformance 11603 -> 11597) by @mohsen1 in #17323
- fix(solver,checker): check every source property against a target index signature by @mohsen1 in #17325
- fix(checker): recognize break-to-own-label as a valid statement completion by @mohsen1 in #17324
- fix(checker): stop reporting TS1223 for duplicate JSDoc @Satisfies tags by @mohsen1 in #17327
- test(checker): wire up two orphaned test files that never ran by @mohsen1 in #17329
- fix(parser): report TS1508 for bare v-mode class-set syntax characters by @mohsen1 in #17334
- fix(checker): type-parameter modifier grammar is first-error-wins per parameter by @mohsen1 in #17338
- fix(checker): destructuring write-target anchors render the computed source type; iterable sources judge every element by @mohsen1 in #17336
- fix(parser): validate ClassSetCharacters inside a v-mode \q{...} disjunction by @mohsen1 in #17341
- fix(checker): honor synthetic-default suppression for named
defaultimport specifiers by @mohsen1 in #17340 - fix(checker,binder): TS expando hosts require const function/arrow, never a class by @mohsen1 in #17345
- fix(parser): using/await using lookahead honors ASI and rejects reserved binding names by @mohsen1 in #17347
- fix(checker): TS4112 for an
overrideclass index signature with no base class by @mohsen1 in #17346 - fix(solver): count well-known-symbol members in missing-property lists; exempt Object.prototype members by @mohsen1 in #17343
- fix(checker): a CommonJS export-property write never conflicts with a same-name JSDoc typedef by @mohsen1 in #17349
- fix(checker): synthesize esModuleInterop default for CJS module.exports=value re-exports by @mohsen1 in #17348
- fix(solver/checker): report a merged interface reference's missing properties flat, not as an intersection target by @mohsen1 in #17350
- fix(solver): don't let a callback body widen a Round-1-fixed type parameter (#17282) by @mohsen1 in #17354
- fix(checker): typeof import(...) strips the source extension even for same-file CommonJS diagnostics by @mohsen1 in #17352
- fix(checker): TS18016 for a private-identifier object-literal key in JS files by @mohsen1 in #17356
- fix(checker): synthetic default needs the interop flag and a non-TS-source target by @mohsen1 in #17357
- fix(lsp): import-fix newline insertion defaults to LF, not CRLF by @mohsen1 in #17359
- fix(solver): Function-extending interface with an extra data member isn't Function by @mohsen1 in #17358
- chore(readme): refresh benchmark image and stats by @mohsen1 in #17360
- fix(checker): merge cross-file lib interface declarations in lib load order by @mohsen1 in #17361
- fix(checker): anchor TS2769 at the last overload candidate's elaborated failing element by @mohsen1 in #17353
- fix(parser): report TS1109 for a missing embedded statement body by @mohsen1 in #17366
- fix(checker): a TS destructuring-parameter leaf with an empty-array default is not implicit-any by @mohsen1 in #17362
- fix(checker): resolve a Closure
function(...)JSDoc type to the globalFunctionby @mohsen1 in #17371 - fix(checker): a JS const/var never declaration-merges with a class by @mohsen1 in #17368
- fix(checker): match tsc's super-property accessibility precedence (TS2340/TS2341/TS2855) by @mohsen1 in #17369
- fix(lsp): offer relative fallback for conditionally ambiguous package imports by @mohsen1 in #17375
- fix(checker): a bare namespace's typeof type has no implicit prototype member by @mohsen1 in #17372
- test(checker): pin tsc missing-property order for Set/Promise/ReadonlyMap merged lib generics by @mohsen1 in #17377
- fix(checker): a JS
.prototype = ...write requires a callable/constructible root by @mohsen1 in #17378 - fix(checker): an unannotated implicit-any var is not possibly-undefined when noImplicitAny is off by @mohsen1 in #17382
- fix(solver): rank incompatible array-element primitives by TS7 TypeFlags, not source order by @mohsen1 in #17380
- fix(lsp): force extension on relative import specifiers under node16/nodenext ESM by @mohsen1 in #17379
- fix(checker): a prior JS declaration establishes the merged global's type for cross-file TS2403 by @mohsen1 in #17381
- chore(release): bump try-tsz publish version to 0.1.69 by @mohsen1 in #17374
Full Changelog: v0.1.68...v0.1.69