v0.1.70
What's Changed
- fix(solver): order tuple/array union members by widened element (stableTypeOrdering) by @mohsen1 in #17383
- fix(checker): report TS2576/TS2339 for super property access that misses the receiver side by @mohsen1 in #17387
- fix(lsp): rewrite unresolved JSDoc typedef references to inline import() types by @mohsen1 in #17386
- fix(solver): gate the array-element common-supertype id-sort on all-from-array (#9667 regression from #17380) by @mohsen1 in #17384
- fix(checker): gate super nonexistent-property diagnostics on super validity by @mohsen1 in #17388
- fix(checker): stop the JSDoc ancestor walk at an object/array literal boundary by @mohsen1 in #17389
- fix(checker): drop the alias name when a written-through alias body collapses to a pre-existing array/tuple by @mohsen1 in #17395
- test(checker): cover the property-assignment-RHS shape for the TS8030 literal-boundary fix by @mohsen1 in #17396
- fix(checker): CJS require() destructuring routes a missing name through TS2305, not TS2339 by @mohsen1 in #17398
- fix(checker): report TS2507 for non-constructor value-expression class bases by @mohsen1 in #17399
- fix(solver): deterministic object member display order in diagnostics (#16309) by @mohsen1 in #17392
- fix(solver): re-gate the array-element supertype id-sort to all-from-array (#9667) by @mohsen1 in #17397
- test(solver): restore the tuple-union source-order fixture's discriminating power by @mohsen1 in #17403
- fix(checker): unwrap assignment-expression RHS for nullish-widening and freshness by @mohsen1 in #17404
- fix(checker): TS7005 for a non-empty array literal widened to any[] by @mohsen1 in #17406
- test(cli): pin no-double-emission for TS18016 across all nine emission sites (#16279) by @mohsen1 in #17405
- fix(parser/checker): TS1029 for abstract-then-accessibility, correct TS1243 async anchor by @mohsen1 in #17408
- fix(checker): a function+namespace merged property write checks assignability by @mohsen1 in #17411
- fix(checker): TS7010 for array-literal return widening; TS7005 already-any false positive by @mohsen1 in #17412
- fix(checker): block-aware related-information normalization (#15388) by @mohsen1 in #17413
- fix(binder): named import specifiers keep string-literal export names by @mohsen1 in #17414
- fix(checker): TS7031 for a destructuring binding whose slot widens null/undefined to any by @mohsen1 in #17415
- chore(fourslash): regenerate snapshot at exact 6562/6562 parity by @mohsen1 in #17417
- fix(checker): JSDoc import(...).Member falls back to value type, not TS2694 by @mohsen1 in #17420
- Revert "TS7031 for a destructuring binding whose slot widens null/undefined to any" (#17415) by @mohsen1 in #17422
- perf(solver): undo-log instantiation shadowing scope instead of cloning the visiting memo by @mohsen1 in #17418
- fix: order-independent cross-file JS facts (UMD-global, defineProperty) + tsc-accurate discover_ts_files ordering by @mohsen1 in #17423
- fix(checker): keep literal element types for a non-fresh array diagnostic source by @mohsen1 in #17427
- fix(checker): TS7031 for destructuring nullish widening (reland #17415) by @mohsen1 in #17424
- fix(emit): preserve single-line async-method body when lowering to es2015 by @mohsen1 in #17432
- revert(cli): restore alphabetical discover_ts_files order by @mohsen1 in #17428
- fix(solver): assign global
window(Window & typeof globalThis) to Window without TS2322/TS2859 by @mohsen1 in #17434 - fix(checker): TS2448 for binding-pattern and for-in self-references in TDZ by @mohsen1 in #17435
- fix(checker): defineProperty augmentation regains its per-call-site type instead of leaking a later call's type backward (#17429) by @mohsen1 in #17433
- test(checker): admit the async-method source-layout gate to the emitter ratchet by @mohsen1 in #17442
- fix(checker): expando/defineProperty same-property siblings are unioned, not cross-checked by @mohsen1 in #17438
- fix(checker): a JS expando-container var is exempt from cross-file TS2403 by @mohsen1 in #17437
- fix(lsp): strip .js extension from JSDoc typedef inline import specifiers by @mohsen1 in #17441
- fix(checker): TS7030 for a reachable (or unreachable) bare
return;(#17425) by @mohsen1 in #17440 - fix(checker): TS2322 constraint-assignable elaboration keeps normalized wording for explicit any/unknown constraints by @mohsen1 in #17446
- fix(checker): TS7030 bare-
return;uses a generator's TReturn, notunknown(#17444) by @mohsen1 in #17451 - fix(checker/emit): a method or getter returning
this.#privateFieldinfers the field type, notany(#17430) by @mohsen1 in #17453 - fix(solver): relate
typeof globalThissurface mints by identity (#17436) by @mohsen1 in #17452 - perf(checker): narrow the arg-validation memo key to referenced type params (#15729) by @mohsen1 in #17455
- fix(checker): TS2345 call-argument bare-type-parameter-target elaboration by @mohsen1 in #17457
- fix(checker): unknown call arguments no longer bypass TS2345 checking by @mohsen1 in #17462
- fix(checker): Closure
function(...)JSDoc type missing return annotation no longer double-reports TS7014 by @mohsen1 in #17464 - fix(checker): a class must relate to itself — stop a fields-only provisional instance clobbering the complete one (#17456) by @mohsen1 in #17467
- fix(checker): JSDoc
import(...).Memberdrops the TS7 value-type fallback by @mohsen1 in #17468 - fix(checker): unknown-typed argument pinning a bare return type param is not clamped to the contextual type by @mohsen1 in #17470
- fix(bench): fail the run when a fixture pin can't be fetched instead of reporting a false green (#17469) by @mohsen1 in #17472
- fix(checker): TS5075/TS5082 note on bare-type-param constructor args by @mohsen1 in #17473
- fix(checker): class relates to itself when its constructor build is in flight (#17456) by @mohsen1 in #17476
- fix(bench): propagate fixture-pin failures for large-ts-repo and canary rows (#17469 follow-up to #17472) by @mohsen1 in #17471
- fix(checker): a JS expando container keeps its own type against a conflicting cross-file var (#17443) by @mohsen1 in #17477
- fix(checker): contextual return type no longer clobbers an argument-inferred
unknownby @mohsen1 in #17479 - fix(cli): project-mode file discovery must shadow same-stem .js by .ts by @mohsen1 in #17478
- fix(checker): a nested JS expando property's own callable RHS grants a cross-file .prototype write by @mohsen1 in #17482
- revert(checker): class-relates-to-itself ctor-build change (regressed 2 rows) by @mohsen1 in #17483
- fix(checker): a var/let/const expando container is NOT exempt from cross-file TS2403 by @mohsen1 in #17481
- fix(checker): new-expression construct signatures preserve literal args when T is naked in the return type by @mohsen1 in #17485
- fix(checker): widen a fresh object-literal property literal source to its primitive when the target rejects its domain by @mohsen1 in #17488
- fix(conformance): oracle.sh rejects extra source positionals instead of silently reordering by @mohsen1 in #17489
- fix(checker): a nested JS expando member's new-member write isn't gated on callable-ness by @mohsen1 in #17493
- test(checker): pin instance/static receiver rendering for TS18014/TS2445 (#17480) by @mohsen1 in #17487
- fix(checker):
NoInfer<T>contextual targets preserve a same-domain literal source in TS2322 (#17491) by @mohsen1 in #17497 - fix(checker): expando write fallback must not reuse the prototype-base vacuous carve-out by @mohsen1 in #17496
- test(checker): admit a TypeId::NEVER sentinel compare to the emitter solver ratchet by @mohsen1 in #17498
- fix(parser): v-mode class committed to &&/-- rejects stray union content (TS1005) by @mohsen1 in #17503
- fix(checker): a JS prototype-assignment root still needs to resolve by @mohsen1 in #17504
- fix(checker): anchor TS1318 (abstract accessor cannot have an implementation) at the accessor name by @mohsen1 in #17506
- test(checker): pin absent-member diagnostics on closed nested-expando write receivers (#17495) by @mohsen1 in #17507
- fix(checker): checkJs files get the same globalThis TS7017 rule as .ts by @mohsen1 in #17510
- fix(solver): naked disjoint-primitive inference first-wins instead of unioning (#17484) by @mohsen1 in #17494
- fix(checker): resolve namespace-value queries cross-file for TS2708 by @mohsen1 in #17511
- fix(checker): pair get/set accessors keyed by a const-enum member computed name (#17508) by @mohsen1 in #17509
- fix(binder): a class-expression variable's prototype is closed, not an expando host (#17495) by @mohsen1 in #17514
- fix(checker): a cross-file class/variable conflict resolves via file order by @mohsen1 in #17512
- test(checker): fix stale TS18016 assertion on private-name prototype object by @mohsen1 in #17513
- fix(checker): widen a NoInfer<inferred-T> callback's fresh return literal in the return-mismatch display (#17501) by @mohsen1 in #17516
- fix(checker): expando write does not silence TS2339 when a class conflicts with a variable by @mohsen1 in #17515
- fix(binder): arm the using/await-using TS2318 gate only for initialized identifier declarators by @mohsen1 in #17521
- docs(specs): canonical reference for tsc root-file order by @mohsen1 in #17522
- fix(checker): a JS constructor-fn's implicit-any
thisis not an expando host by @mohsen1 in #17524 - fix(checker): a JS prototype-merge write onto a type-only namespace still needs TS2708 by @mohsen1 in #17517
- fix(checker): follow default-import alias chain in JSDoc namespace check by @mohsen1 in #17519
- fix(checker): a namespace-exported enum rebind still needs its own assignability check by @mohsen1 in #17526
- fix(checker): JS expando class/variable shadow check must respect file order by @mohsen1 in #17527
- fix(checker): a namespace-nested enum's TS2739 missing-member list keeps source declaration order by @mohsen1 in #17531
- fix(checker): an error-typed destructuring source suppresses the computed-key TS2538 (#17529) by @mohsen1 in #17532
- fix(checker): a recursive new-self() constructor-function idiom must not infer never by @mohsen1 in #17534
- fix(checker): a computed-key destructure consults the source shape like element access (#17528, #17529) by @mohsen1 in #17535
- fix(checker): an any computed destructuring key needs a source that permits a dynamic index by @mohsen1 in #17538
- fix(checker): a reopened namespace with 2+ local implementations owns TS2393, not TS2394 by @mohsen1 in #17539
- fix(cli): match tsc's per-include-pattern file discovery order by @mohsen1 in #17540
- fix(test-utils): shared-DefinitionStore harness restores cross-arena lib fidelity (#16125) by @mohsen1 in #17543
- fix(solver): reduce a concrete-check deferred conditional in target position instead of a spurious False (#17537) by @mohsen1 in #17546
- fix(solver): don't infer contravariantly from unannotated callback params (#17282) by @mohsen1 in #17542
- fix(checker): index-signature member mismatch preempts excess-property checking by @mohsen1 in #17548
- fix(cli): order discovered files by tsc's directory walk, not by whole path by @mohsen1 in #17549
- fix(checker): every static overload signature gets TS2300 against a namespace export, not just the first by @mohsen1 in #17547
- chore(release): bump try-tsz publish version to 0.1.70 by @mohsen1 in #17475
Full Changelog: v0.1.69...v0.1.70
What's Changed
- fix(solver): order tuple/array union members by widened element (stableTypeOrdering) by @mohsen1 in #17383
- fix(checker): report TS2576/TS2339 for super property access that misses the receiver side by @mohsen1 in #17387
- fix(lsp): rewrite unresolved JSDoc typedef references to inline import() types by @mohsen1 in #17386
- fix(solver): gate the array-element common-supertype id-sort on all-from-array (#9667 regression from #17380) by @mohsen1 in #17384
- fix(checker): gate super nonexistent-property diagnostics on super validity by @mohsen1 in #17388
- fix(checker): stop the JSDoc ancestor walk at an object/array literal boundary by @mohsen1 in #17389
- fix(checker): drop the alias name when a written-through alias body collapses to a pre-existing array/tuple by @mohsen1 in #17395
- test(checker): cover the property-assignment-RHS shape for the TS8030 literal-boundary fix by @mohsen1 in #17396
- fix(checker): CJS require() destructuring routes a missing name through TS2305, not TS2339 by @mohsen1 in #17398
- fix(checker): report TS2507 for non-constructor value-expression class bases by @mohsen1 in #17399
- fix(solver): deterministic object member display order in diagnostics (#16309) by @mohsen1 in #17392
- fix(solver): re-gate the array-element supertype id-sort to all-from-array (#9667) by @mohsen1 in #17397
- test(solver): restore the tuple-union source-order fixture's discriminating power by @mohsen1 in #17403
- fix(checker): unwrap assignment-expression RHS for nullish-widening and freshness by @mohsen1 in #17404
- fix(checker): TS7005 for a non-empty array literal widened to any[] by @mohsen1 in #17406
- test(cli): pin no-double-emission for TS18016 across all nine emission sites (#16279) by @mohsen1 in #17405
- fix(parser/checker): TS1029 for abstract-then-accessibility, correct TS1243 async anchor by @mohsen1 in #17408
- fix(checker): a function+namespace merged property write checks assignability by @mohsen1 in #17411
- fix(checker): TS7010 for array-literal return widening; TS7005 already-any false positive by @mohsen1 in #17412
- fix(checker): block-aware related-information normalization (#15388) by @mohsen1 in #17413
- fix(binder): named import specifiers keep string-literal export names by @mohsen1 in #17414
- fix(checker): TS7031 for a destructuring binding whose slot widens null/undefined to any by @mohsen1 in #17415
- chore(fourslash): regenerate snapshot at exact 6562/6562 parity by @mohsen1 in #17417
- fix(checker): JSDoc import(...).Member falls back to value type, not TS2694 by @mohsen1 in #17420
- Revert "TS7031 for a destructuring binding whose slot widens null/undefined to any" (#17415) by @mohsen1 in #17422
- perf(solver): undo-log instantiation shadowing scope instead of cloning the visiting memo by @mohsen1 in #17418
- fix: order-independent cross-file JS facts (UMD-global, defineProperty) + tsc-accurate discover_ts_files ordering by @mohsen1 in #17423
- fix(checker): keep literal element types for a non-fresh array diagnostic source by @mohsen1 in #17427
- fix(checker): TS7031 for destructuring nullish widening (reland #17415) by @mohsen1 in #17424
- fix(emit): preserve single-line async-method body when lowering to es2015 by @mohsen1 in #17432
- revert(cli): restore alphabetical discover_ts_files order by @mohsen1 in #17428
- fix(solver): assign global
window(Window & typeof globalThis) to Window without TS2322/TS2859 by @mohsen1 in #17434 - fix(checker): TS2448 for binding-pattern and for-in self-references in TDZ by @mohsen1 in #17435
- fix(checker): defineProperty augmentation regains its per-call-site type instead of leaking a later call's type backward (#17429) by @mohsen1 in #17433
- test(checker): admit the async-method source-layout gate to the emitter ratchet by @mohsen1 in #17442
- fix(checker): expando/defineProperty same-property siblings are unioned, not cross-checked by @mohsen1 in #17438
- fix(checker): a JS expando-container var is exempt from cross-file TS2403 by @mohsen1 in #17437
- fix(lsp): strip .js extension from JSDoc typedef inline import specifiers by @mohsen1 in #17441
- fix(checker): TS7030 for a reachable (or unreachable) bare
return;(#17425) by @mohsen1 in #17440 - fix(checker): TS2322 constraint-assignable elaboration keeps normalized wording for explicit any/unknown constraints by @mohsen1 in #17446
- fix(checker): TS7030 bare-
return;uses a generator's TReturn, notunknown(#17444) by @mohsen1 in #17451 - fix(checker/emit): a method or getter returning
this.#privateFieldinfers the field type, notany(#17430) by @mohsen1 in #17453 - fix(solver): relate
typeof globalThissurface mints by identity (#17436) by @mohsen1 in #17452 - perf(checker): narrow the arg-validation memo key to referenced type params (#15729) by @mohsen1 in #17455
- fix(checker): TS2345 call-argument bare-type-parameter-target elaboration by @mohsen1 in #17457
- fix(checker): unknown call arguments no longer bypass TS2345 checking by @mohsen1 in #17462
- fix(checker): Closure
function(...)JSDoc type missing return annotation no longer double-reports TS7014 by @mohsen1 in #17464 - fix(checker): a class must relate to itself — stop a fields-only provisional instance clobbering the complete one (#17456) by @mohsen1 in #17467
- fix(checker): JSDoc
import(...).Memberdrops the TS7 value-type fallback by @mohsen1 in #17468 - fix(checker): unknown-typed argument pinning a bare return type param is not clamped to the contextual type by @mohsen1 in #17470
- fix(bench): fail the run when a fixture pin can't be fetched instead of reporting a false green (#17469) by @mohsen1 in #17472
- fix(checker): TS5075/TS5082 note on bare-type-param constructor args by @mohsen1 in #17473
- fix(checker): class relates to itself when its constructor build is in flight (#17456) by @mohsen1 in #17476
- fix(bench): propagate fixture-pin failures for large-ts-repo and canary rows (#17469 follow-up to #17472) by @mohsen1 in #17471
- fix(checker): a JS expando container keeps its own type against a conflicting cross-file var (#17443) by @mohsen1 in #17477
- fix(checker): contextual return type no longer clobbers an argument-inferred
unknownby @mohsen1 in #17479 - fix(cli): project-mode file discovery must shadow same-stem .js by .ts by @mohsen1 in #17478
- fix(checker): a nested JS expando property's own callable RHS grants a cross-file .prototype write by @mohsen1 in #17482
- revert(checker): class-relates-to-itself ctor-build change (regressed 2 rows) by @mohsen1 in #17483
- fix(checker): a var/let/const expando container is NOT exempt from cross-file TS2403 by @mohsen1 in #17481
- fix(checker): new-expression construct signatures preserve literal args when T is naked in the return type by @mohsen1 in #17485
- fix(checker): widen a fresh object-literal property literal source to its primitive when the target rejects its domain by @mohsen1 in #17488
- fix(conformance): oracle.sh rejects extra source positionals instead of silently reordering by @mohsen1 in #17489
- fix(checker): a nested JS expando member's new-member write isn't gated on callable-ness by @mohsen1 in #17493
- test(checker): pin instance/static receiver rendering for TS18014/TS2445 (#17480) by @mohsen1 in #17487
- fix(checker):
NoInfer<T>contextual targets preserve a same-domain literal source in TS2322 (#17491) by @mohsen1 in #17497 - fix(checker): expando write fallback must not reuse the prototype-base vacuous carve-out by @mohsen1 in #17496
- test(checker): admit a TypeId::NEVER sentinel compare to the emitter solver ratchet by @mohsen1 in #17498
- fix(parser): v-mode class committed to &&/-- rejects stray union content (TS1005) by @mohsen1 in #17503
- fix(checker): a JS prototype-assignment root still needs to resolve by @mohsen1 in #17504
- fix(checker): anchor TS1318 (abstract accessor cannot have an implementation) at the accessor name by @mohsen1 in #17506
- test(checker): pin absent-member diagnostics on closed nested-expando write receivers (#17495) by @mohsen1 in #17507
- fix(checker): checkJs files get the same globalThis TS7017 rule as .ts by @mohsen1 in #17510
- fix(solver): naked disjoint-primitive inference first-wins instead of unioning (#17484) by @mohsen1 in #17494
- fix(checker): resolve namespace-value queries cross-file for TS2708 by @mohsen1 in #17511
- fix(checker): pair get/set accessors keyed by a const-enum member computed name (#17508) by @mohsen1 in #17509
- fix(binder): a class-expression variable's prototype is closed, not an expando host (#17495) by @mohsen1 in #17514
- fix(checker): a cross-file class/variable conflict resolves via file order by @mohsen1 in #17512
- test(checker): fix stale TS18016 assertion on private-name prototype object by @mohsen1 in #17513
- fix(checker): widen a NoInfer<inferred-T> callback's fresh return literal in the return-mismatch display (#17501) by @mohsen1 in #17516
- fix(checker): expando write does not silence TS2339 when a class conflicts with a variable by @mohsen1 in #17515
- fix(binder): arm the using/await-using TS2318 gate only for initialized identifier declarators by @mohsen1 in #17521
- docs(specs): canonical reference for tsc root-file order by @mohsen1 in #17522
- fix(checker): a JS constructor-fn's implicit-any
thisis not an expando host by @mohsen1 in #17524 - fix(checker): a JS prototype-merge write onto a type-only namespace still needs TS2708 by @mohsen1 in #17517
- fix(checker): follow default-import alias chain in JSDoc namespace check by @mohsen1 in #17519
- fix(checker): a namespace-exported enum rebind still needs its own assignability check by @mohsen1 in #17526
- fix(checker): JS expando class/variable shadow check must respect file order by @mohsen1 in #17527
- fix(checker): a namespace-nested enum's TS2739 missing-member list keeps source declaration order by @mohsen1 in #17531
- fix(checker): an error-typed destructuring source suppresses the computed-key TS2538 (#17529) by @mohsen1 in #17532
- fix(checker): a recursive new-self() constructor-function idiom must not infer never by @mohsen1 in #17534
- fix(checker): a computed-key destructure consults the source shape like element access (#17528, #17529) by @mohsen1 in #17535
- fix(checker): an any computed destructuring key needs a source that permits a dynamic index by @mohsen1 in #17538
- fix(checker): a reopened namespace with 2+ local implementations owns TS2393, not TS2394 by @mohsen1 in #17539
- fix(cli): match tsc's per-include-pattern file discovery order by @mohsen1 in #17540
- fix(test-utils): shared-DefinitionStore harness restores cross-arena lib fidelity (#16125) by @mohsen1 in #17543
- fix(solver): reduce a concrete-check deferred conditional in target position instead of a spurious False (#17537) by @mohsen1 in #17546
- fix(solver): don't infer contravariantly from unannotated callback params (#17282) by @mohsen1 in #17542
- fix(checker): index-signature member mismatch preempts excess-property checking by @mohsen1 in #17548
- fix(cli): order discovered files by tsc's directory walk, not by whole path by @mohsen1 in #17549
- fix(checker): every static overload signature gets TS2300 against a namespace export, not just the first by @mohsen1 in #17547
- chore(release): bump try-tsz publish version to 0.1.70 by @mohsen1 in #17475
Full Changelog: v0.1.69...v0.1.70