Handle braceless core.setFailed() control-flow in require-return-after-core-setfailed#45430
Merged
Merged
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix require-return-after-core-setfailed for unbraced statements
Handle braceless Jul 14, 2026
core.setFailed() control-flow in require-return-after-core-setfailed
Contributor
There was a problem hiding this comment.
Pull request overview
Extends the ESLint rule to detect fall-through after braceless core.setFailed() control bodies and provide block-wrapping fixes.
Changes:
- Adds direct
ifand loop-body analysis. - Adds fixer handling and regression tests for braceless bodies.
Show a summary per file
| File | Description |
|---|---|
require-return-after-core-setfailed.ts |
Adds detection and suggestions for braceless control bodies. |
require-return-after-core-setfailed.test.ts |
Adds braceless control-flow regression cases. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 3
- Review effort level: Medium
| fix(fixer) { | ||
| const directControlBodyContainer = getDirectControlBodyContainer(node); | ||
| if (directControlBodyContainer !== null) { | ||
| return fixer.replaceText(node, `{ ${sourceCode.getText(node)} return; }`); |
Comment on lines
+384
to
+385
| DoWhileStatement(node: TSESTree.DoWhileStatement) { | ||
| checkDirectControlBody(node.body); |
Comment on lines
+355
to
+356
| if (continuation !== null && !isControlTransfer(continuation)) { | ||
| reportNested(stmt); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
require-return-after-core-setfailedwas missing direct single-statement control bodies, so bracelessif/elsebranches and loop bodies could callcore.setFailed()and still fall through without being diagnosed. The gap was positional: the braced form was reported, while the equivalent braceless form was not.Expand continuation analysis
core.setFailed()when it is the direct braceless body of:if/elsewhiledo...whileforfor...infor...ofKeep fixer output syntactically correct
setFailed()is a direct braceless control body, theaddReturnsuggestion now wraps it in a block before insertingreturn;.Add focused regression coverage
ifwith following continuationif/elsewith following continuationcore.setFailed,core["setFailed"], alias, destructured binding)ifwith no continuation.Example:
Suggested fix: