Skip to content

Broaden empty-catch intent comment recognition - #52983

Merged
pelikhan merged 8 commits into
mainfrom
copilot/fix-eslint-no-empty-catch-block
Aug 15, 2026
Merged

Broaden empty-catch intent comment recognition#52983
pelikhan merged 8 commits into
mainfrom
copilot/fix-eslint-no-empty-catch-block

Conversation

Copilot AI commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

no-empty-catch-block was only accepting a narrow set of intent-signaling comments, causing documented no-op catches such as non-fatal cleanup and JSON parse fallthrough handling to be reported.

  • Intent vocabulary

    • Recognizes additional explicit phrases: non-fatal, ignore/ignored, fall through, no-op, safe to ignore, and constrained swallow phrasing.
    • Keeps vague comments rejected instead of treating any comment as sufficient.
  • Negation safeguards

    • Rejects comments that mention accepted phrases in a negative sense, such as do not ignore, can't ignore, do not fall through, or not a no-op.
  • Regression coverage

    • Adds valid cases for the live comments that motivated the issue:
try {
  cleanup();
} catch {
  // Cleanup failure is non-fatal.
}

try {
  parseAwContext();
} catch (_parseError) {
  // aw_context is not valid JSON – ignore and fall through
}

Copilot AI and others added 7 commits August 15, 2026 23:23
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix comment regex for no-empty-catch-block rule Broaden empty-catch intent comment recognition Aug 15, 2026
Copilot AI requested a review from pelikhan August 15, 2026 23:35
@pelikhan
pelikhan marked this pull request as ready for review August 15, 2026 23:36
Copilot AI balanced review requested due to automatic review settings August 15, 2026 23:36
@pelikhan
pelikhan merged commit 9729142 into main Aug 15, 2026
1 check passed
@pelikhan
pelikhan deleted the copilot/fix-eslint-no-empty-catch-block branch August 15, 2026 23:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Broadens ESLint empty-catch intent detection while preserving rejection of vague or negated comments.

Changes:

  • Adds recognized intent phrases and negation safeguards.
  • Adds positive and negative regression cases.
Show a summary per file
File Description
no-empty-catch-block.ts Expands comment recognition logic.
no-empty-catch-block.test.ts Covers new intent and negation phrases.

Review details

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Balanced

const sourceCode = context.sourceCode;
const intentionalIgnoreCommentRe = /\bintentional\b|\bbest[- ]effort\b|\bnon[- ]fatal\b|\bsilently swallow(?:ed|s|ing)?\b/i;
const intentionalIgnoreCommentRes = [/\bintentional\b/i, /\bbest[- ]effort\b/i, /\bnon[- ]fatal\b/i, /(?<![-\w])(?:safe to )?ignore(?:d|s)?\b/i, /\bfall[- ]through\b/i, /\bno[- ]?op\b/i];
const negatedIntentionalIgnoreCommentRe = /\b(?:can't|cannot|do not|don't|must not|never|not|should not)\s+(?:an?\s+)?(?:(?:safe to\s+)?ignore|(?:silently\s+)?swallow|fall[- ]through|no[- ]?op|best[- ]effort|non[- ]fatal)\b/i;
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.87.0

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

eslint-factory: no-empty-catch-block comment regex misses common real-world phrasings (grounded FPs)

3 participants