Problem
packages/ts_checker/src/check.zig has ~394 orelse/catch Primitive.any fallbacks: when Home cannot model a construct it quietly types it any, which silences every downstream error without a trace. The README's implicit-any false positives trace back to exactly this. The primitive table has no error type (slot 15 is free). A sound mode is impossible while the checker itself injects any.
Evidence (origin/main @ d4b219507)
packages/ts_checker/src/types.zig:28-47packages/ts_checker/src/check.zig:6896packages/ts_checker/src/check.zig:10116packages/ts_checker/src/check.zig:15204packages/ts_checker/src/check.zig:78145README.md:606-617
Scope
- Add an internal
unmodeledtype that relates likeany(so tsc parity is preserved) but is distinguishable. - Convert the
catch/orelse Primitive.anyfallbacks to it. - Expose a count/list (
--listUnmodeledAnyor anHMdiagnostic in debug builds).
Acceptance criteria
- The unmodeled-
anycount is reported on the pinned Zod benchmark. - A CI ratchet fails if the count grows.
- TS conformance unchanged.
Links
Depends on: #782 Related: #765, #758, #754, #751 Part of #814.