Repository navigation
Conversation
|
dmety please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
1 similar comment
|
dmety please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
There was a problem hiding this comment.
🟡 Changes recommended
The unconditional check incorrectly rejects erased ambient class declarations.
1 open finding
What changed in this PR
Adds strict-mode diagnostics for class names eval and arguments.
Changes:
- Checks class names during binding.
- Adds compiler regression coverage and diagnostic baselines.
| File | Description |
|---|---|
tsc/internal/binder/binder.go |
Adds class-name validation and class-specific diagnostics. |
tsc/testdata/tests/cases/compiler/strictModeEvalOrArgumentsInClassName.ts |
Adds regression cases. |
tsc/testdata/baselines/reference/compiler/strictModeEvalOrArgumentsInClassName.errors.txt |
Records diagnostics. |
tsc/testdata/baselines/reference/compiler/strictModeEvalOrArgumentsInClassName.symbols |
Records symbols. |
tsc/testdata/baselines/reference/compiler/strictModeEvalOrArgumentsInClassName.types |
Records inferred types. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
|
|
||
| func (b *Binder) bindClassLikeDeclaration(node *ast.Node) { | ||
| name := node.Name() | ||
| b.checkStrictModeEvalOrArguments(node, name) |

Fixes #64661
bindClassLikeDeclarationdid not callcheckStrictModeEvalOrArguments, so class declarations and expressions namedevalorargumentsescaped TS1210. Call the check while binding class-like declarations and use the class-specific diagnostic for class names.Add regression coverage for class declarations, named class expressions, ambient class declarations, and JavaScript with
checkJs.Validation:
go -C ./tsc test '-run=TestLocal/(strictModeEvalOrArgumentsInClassName|strictModeReservedWordInClassDeclaration|argumentsReferenceInMethod4_Js)' ./internal/testrunnernpx hereby test,npx hereby lint, andnpx hereby check:formatwere not run.