Problem
Home resolves the default-lib alias PropertyKey when used directly, but its generic type-argument unresolved-name sweep independently reports TS2304 for the same alias inside Record<PropertyKey, unknown>. TypeScript 6.0.3 and native TypeScript 7.0.2 accept both forms.
The current pinned Zod 4.5.2 candidate contains four such TS2304 diagnostics: src/v4/core/schemas.ts:3118 and src/v4/core/util.ts:160/400/424.
Fair oracle
A fresh strict, no-emit project contains direct PropertyKey, Record<PropertyKey, unknown>, an interface member, a function parameter/return, and a value annotation. Its negative counterpart only adds Record<MissingKey, unknown>.
- Valid: TS 6.0.3 = 0, TS 7.0.2 = 0, Home currently = one false TS2304 on nested
PropertyKey. - Negative: TS 6.0.3 and TS 7.0.2 each retain exactly one TS2304 on
MissingKey; Home currently emits that plus the falsePropertyKeydiagnostic.
Oracle: /tmp/home-ts-property-key.
Acceptance
- Reuse normal default-lib type-name resolution in parsed generic arguments; do not special-case Zod,
Record, a source location, or suppress TS2304 broadly. - Keep an unresolved non-lib name such as
MissingKeydiagnostic. - Add a permanent positive/negative regression.
- Run focused and full checker suites, Program integration, ReleaseFast, formatting, diff checks, and scoped Pickier.
- Compare complete pinned Zod diagnostic identities against #660 and the immutable #548 baseline; zero candidate-only identities required.
- Publish the exact audit in
docs/docs/TS_PERFORMANCE.mdand the linked compact README table under #416.