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 () => void is 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 failures
Remaining 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
Parent: #67
Scope
Close the remaining byte-for-byte diagnostic mismatches in the upstream
parserharnessconformance fixture by implementing the corresponding checker, resolver, flow, and diagnostic semantics.Verified progress
The callable/default-parameter wave now:
{ (): R }object call signatures through the shared signature lookup path.f = benchmark.bench.subBenchmark(name, f)where() => voidis required.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
Remaining clusters visible in the current diff
Completion gate
parserharnessas 1 / 1 with no diagnostic diff.ts_checkeror adjacent exact fixtures.