microsoft / microsoft/TypeScript
Compiler crash: Debug Failure in visitEachChildOfIndexSignatureDeclaration
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
### 🔎 Search Terms
typescript debug failure index signature
visitEachChildOfIndexSignatureDeclaration
typescript compiler crash decorator addInitializer
invalid index signature decorator
typescript Debug Failure index signature
### 🕗 Version & Regression Information
- This is the behavior in the version I tested (TypeScript 5.9.3). I reviewed the FAQ and did not find entries related to this compiler crash.
### ⏯ Playground Link
https://www.typescriptlang.org/play/?#code/FAMwrgdgxgLglgewgAgIYGd1wgcwCoCeADgKYAUIEAXMgGKSyIQA0yA+rAB40DCANhnQBZEjAAWCACYARElAQAnVDEU8kMEpxgBKAN7BkyA8j6jklAHKoAtiWQBedlwB0EGyWDGOMTs9STJAEkIOHhUPjgALxIFCgZ4JDJxOHQaXQBtAGsSAhp0GAVsHABdVlQIAgBfbWR9Q3rkZPR0y3dnFQBlAqKybWKHcwhnACNsSSSxFO0AbmNq42MFUTAFFHBoBJQAdyUiUgVkCZSacoJmZwvUBRxUtArkGpoANwQ4STr6+Qh0BFNnPgQODIAAMoAJMMhbOIpJD3MgACS6Vq2doILqFXC9SrA7TGQyUZxQcJ8I7oVgXPzXdC4wyVTyVIzAMGCZAACRIfABtWMX3yCjAsEUvX0cwWhgAAoIioRSMZJGiEFCiodtM9Xu88cheb8SP9AWQAERiDkAg005B0ypAA
### 💻 Code
```typescript
function assingType(fn: Function, _ctx: ClassMethodDecoratorContext){
let fnName = _ctx.name
_ctx.addInitializer(function(this: {[key: string], any}) { // here is my sintaxis error
// Invalid type annotation. The compiler should report a type error,
// but instead it crashes with "Debug Failure".
this[fnName.toString()] = fn.bind(this);
})
return function wrapper (this: any,...args: any ) : void{
console.log(`class method mame ${fnName.toString()}`)
fn.call(this, ...args)
}
}
class Hello {
constructor(){
}
@assingType
doSometing (): void{
console.log("hello")
}
}
```
### 🙁 Actual behavior
C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:123168
throw e;
^
Error: Debug Failure.
at visitEachChildOfIndexSignatureDeclaration (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:90865:13)
at visitEachChild (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:90721:33)
at visitEachChild2 (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:133010:16)
at visitExistingNodeTreeSymbolsWorker (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:132899:23)
at visitExistingNodeTreeSymbols (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:132658:22)
at visitArrayWorker (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:90535:49)
at visitNodes2 (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:90506:19)
at visitEachChildOfTypeLiteralNode (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:90911:7)
at visitEachChild (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:90721:33)
at visitEachChild2 (C:\Users\diazc\AppData\Roaming\npm\node_modules\typescript\lib\_tsc.js:133010:16)
### 🙂 Expected behavior
The TypeScript compiler should not crash.
If the code is invalid, the compiler should emit a normal type error instead of throwing a "Debug Failure" during compilation.
### Additional information about the issue
This code does not crash in the TypeScript Playground. The Playground only reports normal type-checking errors.
However, when compiling locally with `tsc` (TypeScript 5.9.3), the compiler crashes with a "Debug Failure" during compilation.
A screenshot of the stack trace from the local `tsc` execution is attached.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con il codice TypeScript fornito e riproduci localmente il crash con tsc 5.9.3, quindi confrontalo con il risultato del Playground. Traccia lo stack a partire da visitEachChildOfIndexSignatureDeclaration e usa l'annotazione della firma di indice non valida come caso di riferimento. Il lavoro è completo quando il compilatore segnala un normale errore di tipo invece di generare Debug Failure.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 48/100