Parent: #67
Scope
Close the remaining byte-for-byte diagnostic mismatches in the upstream parserharness conformance fixture by implementing the corresponding checker, resolver, flow, and diagnostic semantics.
Verified progress
The callable/default-parameter wave now:
- Distinguishes required unannotated TypeScript parameters from untyped JavaScript signatures.
- Recognizes
{ (): R }object call signatures through the shared signature lookup path. - Preserves contextual typing for
f = benchmark.bench. - Rejects
subBenchmark(name, f)where() => voidis required. - Renders parserharness line 637 exactly as TypeScript:
Argument of type '(name: any, f: any) => void' is not assignable to parameter of type '() => void'.
This flips 1 exact diagnostic row from mismatched to common. The fixture itself remains open because broader existing mismatches remain.
Reproduction
HOME_TS_CONFORMANCE_ROOT=~/Code/typescript-go \
HOME_TS_CONFORMANCE_FULL=1 \
HOME_TS_CONFORMANCE_EXACT=1 \
HOME_TS_CONFORMANCE_FILTER=parserharness \
HOME_TS_CONFORMANCE_TRACE=1 \
./pantry/.bin/zig build test \
-Dfilter=ts_conformance \
'-Dts-conformance-test-filter=opt-in full local TypeScript corpus survey' \
--summary failuresRemaining clusters visible in the current diff
- Namespace/value resolution and missing imported harness dependencies.
- Flow analysis for nullable and evolving-array locals.
- Exact name suggestions and declaration merging.
- Object/index access and structural argument diagnostics.
- Optional comparison/baseline parameter flow near the end of the fixture.
Completion gate
- Focused exact run reports
parserharnessas 1 / 1 with no diagnostic diff. - No regressions in
ts_checkeror adjacent exact fixtures.