microsoft / microsoft/TypeScript

Error: Debug Failure. No error for last overload signature

Offen
#61,524 6 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Domain: check: Variance Relationships Help Wanted
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

🔎 Search Terms

The TypeScript compiler crashs with the message "Error: Debug Failure. No error for last overload signature". (Check the DevTools console for the error message in the TypeScript Playground).

I've found issue #60229, which has the same error message. However, I am not sure if the root cause is the same.

🕗 Version & Regression Information
  • The problem appears in the latest nightly version (v5.9.0-dev.20250403)
  • This changed between versions 3.5.1 and 3.6.2 (in the Playground it works in 3.5.1 but not in 3.6.2 anymore)
⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.9.0-dev.20250403#code/C4TwDgpgBA4hB2EBOBLAxgHgCoD4oF4osoIAPYBAEwGcoBDeEAbQF0oB+Ip+AVwFsARsjYAuLgGsIIAPYAzIiwDcAKGVkw0pMCiye8NMBTT4UCtWAAxeBgCCJclVoAlCGk2UM51PADmAGnpGHBwACmUoKGkBACsxGz9wqDQBMRCU2ARkdAwABTotFDoAG1tggEoCPAYQZQqAb0TZTSgQt3hzKCZJEACAN2K2OSgAeRjXYAA6BGBUCGoQqOiy+sSI5JD+ovpaOERUTBscMpUIgF9lc6A

💻 Code
type Generic<T> = T extends any[] ? T[number] : T[keyof T];

export function testFn<A extends Record<string, any>>(
  obj: A,
  cb: (b: Generic<Partial<A>>) => any
) {
  for (const [key, val] of Object.entries(obj)) {
    cb(val as Generic<A>);
  }
}
🙁 Actual behavior

The compiler crashs with:

Error: Debug Failure. No error for last overload signature
    at resolveCall (M:\websites\app\node_modules\typescript\lib\_tsc.js:75576:19)
    at resolveCallExpression (M:\websites\app\node_modules\typescript\lib\_tsc.js:75970:12)
    at resolveSignature (M:\websites\app\node_modules\typescript\lib\_tsc.js:76398:16)
    at getResolvedSignature (M:\websites\app\node_modules\typescript\lib\_tsc.js:76425:20)
    at checkCallExpression (M:\websites\app\node_modules\typescript\lib\_tsc.js:76533:23)
    at checkExpressionWorker (M:\websites\app\node_modules\typescript\lib\_tsc.js:79950:16)
    at checkExpression (M:\websites\app\node_modules\typescript\lib\_tsc.js:79849:32)
    at checkExpressionCached (M:\websites\app\node_modules\typescript\lib\_tsc.js:79473:28)
    at checkVariableLikeDeclaration (M:\websites\app\node_modules\typescript\lib\_tsc.js:82311:35)
    at checkVariableDeclaration (M:\websites\app\node_modules\typescript\lib\_tsc.js:82407:5)
🙂 Expected behavior

That the compiler does not crash.

Additional information about the issue

Changing

cb: (b: Generic<Partial<A>>) => any

to

cb: (b: Partial<Generic<A>>) => any

prevents the error. However, this only addresses the symptoms rather than the root cause.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Absturz im TypeScript Playground mit der verlinkten nightly-Version und dem bereitgestellten generischen Callback-Beispiel. Beginne bei den im Stacktrace angezeigten Einträgen resolveCall und resolveCallExpression, vergleiche das Verhalten mit den Versionen 3.5.1 und 3.6.2 und stelle sicher, dass das Kompilieren des Beispiels nicht mehr abstürzt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.