Skip to content

TypeScript exact parity: close parserharness diagnostics #68

Description

@chrisbbreuer

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

  • Focused exact run reports parserharness as 1 / 1 with no diagnostic diff.
  • No regressions in ts_checker or adjacent exact fixtures.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions