Related #846. The checked-in TypeScript 5.7.3 differential fixture (commit 47fb80406) reproduces a contextual overload callback diagnostic without muting or replacing errors.
Both CLIs exit 2, write empty stderr, and report top-level TS2769, TS18048, and TS2339 in the same order. The current Home CLI does include the nested number-to-string reason in the second overload child; the earlier issue description claiming that reason was absent is outdated. Three exact mismatches remain:
- TypeScript anchors TS2769 at
main.ts(9,1); Home anchors it at(9,6)(the array argument). - TypeScript prints optional tuple elements as
[(number | undefined)?]and[(string | undefined)?]; Home prints[number | undefined]and[string | undefined]. - TypeScript's first child keeps the literal argument type
"text"; Home widens it tostring.
The checker regression overload applicability preserves final contextual callback diagnostics already expects two rejected overloads, but its position assertion currently expects the inner array argument, not TypeScript's call start. Source review: reportNoOverloadMatchesWithOverloads selects arg_error.node for its head; the signature display and tuple display paths omit the optional tuple marker. The literal widening still needs a source-level diagnosis. Preserve overload applicability, callback-body diagnostics, JSX-specific anchors, and the nested reason while correcting all three streams. Run the full checker and exact CLI stream suites under the agreed memory guard before closing; this oracle is deliberately not a passing Home parity claim.