Skip to content

Crash: Debug Failure. False expression in getArgumentArityError when resolving overloaded decorators with --experimentalDecorators #63094

@na7ure-a

Description

@na7ure-a

🔎 Search Terms

"Debug Failure. False expression."

"getArgumentArityError crash"

"resolveDecorator Debug Failure"

"experimentalDecorators overloaded signature crash"

🕗 Version & Regression Information

Crashes in: 5.7.3, 5.8.3, 5.9.3 (Nightly)
Only crashes with --experimentalDecorators enabled.

⏯ Playground Link

https://www.typescriptlang.org/zh/play/?declaration=false&experimentalDecorators=true&target=7&ts=6.0.0-dev.20260203#code/PTAEAEFMA8AdIE4EsC2kB2AXAhgGwCKQDGA9gtpmQM4BcomCArpAFDi7YoBGAJtgBQBRdIxQA6AHIkAlGx7ESQkeKmyiHKlVABxBJEiZEoAN4tQ5iB258loyTLMXw80rZUOL5gOZ6DSdF50VAz+XgDcLI7mpOjBTESUCPxomthekHSgcaHSJlGe9AAWSFRiPvqYoaAAvKApVGmQEZ4Avvn57Jy8AsJ2qh0uir3usp7lBvy5pgUWepiMCOigAEQAEpC4uCQANCugANRFJWW+lQHNFm2endbYAwr545gAjJN5M+ZzC0trG1u7ywOR1KT1CF3MVwsTwATPwbt03PZcs4FIjVKBYNhyCgpvlPF9Fit1psdntDphiiDTmD8pDvKcAMxwqzdCCDDFYzi4j6gAk-Yn-MnAk4VGmtFhtFgAM0Y6ASSBIS0G-DEqqxXlooAA2vkAG4kJA8bb5bDoACexs8soA1ugSAB3dAsAC60jCQA

💻 Code

// @experimentalDecorators: true
@lambda(Enum.No)
@deco(Enum.No)
class Greeter {
    @lambda(Enum.No)
    @deco(Enum.No)
     greeting: string;

    constructor(message:  string) {
        this.greeting = message;
    }
    
    @lambda(Enum.No)
    @deco(Enum.No)
    greet() {
        return "Hello, " + this.greeting;
    }
    @lambda
    @deco
    greet1() {
        return "Hello, " + this.greeting;
    }
    greet2(@lambda(Enum.No) @deco(Enum.No) param) {
        return "Hello, " + this.greeting;
    }
    greet3(@lambda @deco param) {
        return "Hello, " + this.greeting;
    }
}

function deco(...args: [
    void,
    any,
    unknown
]);

🙁 Actual behavior

 .\ts-versions\nightly\node_modules\.bin\tsc.cmd   --experimentalDecorators   .\decoratorUsedBeforeDeclaration_mutated_batch18.ts
D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:123214
      throw e;
      ^

Error: Debug Failure. False expression.
    at first (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:585:9)                                                                                                              
    at getArgumentArityError (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:76369:19)                                                                                           
    at resolveCall (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:76607:27)                                                                                                     
    at resolveDecorator (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:77198:12)                                                                                                
    at resolveSignature (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:77349:16)                                                                                                
    at getResolvedSignature (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:77370:20)                                                                                            
    at checkDecorator (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:82487:23)                                                                                                  
    at checkDecorators (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:82637:9)                                                                                                  
    at checkFunctionOrMethodDeclaration (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:82758:5)                                                                                 
    at checkMethodDeclaration (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:81387:5)                                                                                           

Node.js v22.19.0

🙂 Expected behavior

The compiler should not crash.

Additional information about the issue

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: DecoratorsThe issue relates to the decorator syntaxHelp WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions