Skip to content

Compiler crash: Debug Failure in visitEachChildOfIndexSignatureDeclaration #63230

@juanjh1

Description

@juanjh1

🔎 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

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.

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: CrashesUnhandled exceptions/panics with no immediate primary root cause identified

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions