Skip to content

Comments

Fix Debug Failure crash when resolving overloaded decorators with explicit tuple rest parameters#63178

Open
hayatexe wants to merge 1 commit intomicrosoft:mainfrom
hayatexe:fix-decorator-arity-crash
Open

Fix Debug Failure crash when resolving overloaded decorators with explicit tuple rest parameters#63178
hayatexe wants to merge 1 commit intomicrosoft:mainfrom
hayatexe:fix-decorator-arity-crash

Conversation

@hayatexe
Copy link

Fixes #63094

Description
When utilizing --experimentalDecorators on methods or accessors, the compiler crashed with a Debug Failure. False expression. at getArgumentArityError if a decorator had an explicitly typed tuple rest parameter (e.g. ...args: [any, any, any]) and an overload match failed.

This happened because getLegacyDecoratorArgumentCount incorrectly evaluated signature.parameters.length instead of getParameterCount(signature) when deciding whether the decorator expects 2 or 3 parameters. Since the node length of a rest parameter is 1 (e.g., ...args), the function erroneously returned 2, which bypassed some argument arity checks and later dropped into getArgumentArityError with args.length = 3 and max = 3. This triggered a crash trying to get first() on args.slice(3).

This PR fixes the crash by using getParameterCount(signature) within getLegacyDecoratorArgumentCount to appropriately count effective parameters over rest arguments.

A compiler test is included.

@github-project-automation github-project-automation bot moved this to Not started in PR Backlog Feb 22, 2026
@typescript-bot typescript-bot added the For Backlog Bug PRs that fix a backlog bug label Feb 22, 2026
@Andarist
Copy link
Contributor

There is already an open PR fixing this: #63098

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

For Backlog Bug PRs that fix a backlog bug

Projects

Status: Not started

Development

Successfully merging this pull request may close these issues.

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

3 participants