Parent
- #548
- Correctness tracker: #416
- Symbolic indexed-access defaults: #634
- Recursive fixed-point follow-up: #639
Problem
When a generic type reference omits a later type argument whose default depends on an earlier parameter, Home records the raw default instead of substituting the earlier effective argument first. For example, Family<T = unknown, U = Box<T>> leaves T free inside U when referenced as Family or partially as Family<number>.
This produces invalid assignability failures on the pinned Zod 4.5.2 graph. The frozen post-#627 baseline contains 710 diagnostics across the unchanged 106-file production graph.
Acceptance criteria
- Add reduced conformance regressions for bare and partially supplied generic references with dependent trailing defaults.
- Match current TypeScript on valid defaulted references and invalid unrelated controls.
- Apply earlier effective arguments to each later already-symbolic default in declaration order at every default-fill site.
- Preserve generic identity, recursion safeguards, missing-required-argument diagnostics, and invalid constraint controls.
- Keep symbolic indexed-access preservation in #634 rather than re-lowering arbitrary declaration HIR during use-site substitution.
- Keep recursive fixed-point closure in #639 rather than globally weakening free-parameter deferral.
- Re-run the unchanged pinned 106-file Zod 4.5.2 graph and report exact normalized diagnostic removals and additions.
- Add only fair benchmark/correctness evidence, document the results in
docs/docs/TS_PERFORMANCE.md, and update the linked README table. - Keep #548 and #416 updated; link this issue from each commit.