fix(linter/eslint/no-lone-blocks): do not flag empty loops#22649
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. |
There was a problem hiding this comment.
Pull request overview
Fixes a false positive in the eslint/no-lone-blocks linter rule by ensuring empty loop bodies are not treated as “lone blocks”, aligning Oxlint behavior with ESLint (issue #22648).
Changes:
- Skip reporting empty
BlockStatements when their parent node is an iteration statement (while,do-while,for,for-in,for-of). - Add regression test cases covering empty loop bodies to prevent reintroducing the false positive.
Merging this PR will not alter performance
Comparing Footnotes
|
# Oxlint ### 🚀 Features - 10da26b linter: `no-misleading-character-class` add suggestions for regex literal (#22681) (Sysix) - b84941e linter/vue: Implement no-expose-after-await rule (#22675) (bab) - 98b98c1 linter/vue: Implement no-computed-properties-in-data rule (#22674) (bab) - 868e2e8 linter: Add suggestion for `no-misleading-character-class` (#22631) (Sysix) - 2d4c919 oxlint: Support `vite-plus/resolveConfig` for vite.config.ts (#22456) (leaysgur) - 2a60012 linter/vue: Implement require-render-return rule (#22613) (bab) - 9f227fd linter/vue: Implement no-deprecated-props-default-this rule (#21892) (bab) - 9cd28b3 linter: Add debug option to print files to be linted (#22546) (camchenry) - 87f065e linter/vue: Implement return-in-emits-validator rule (#21935) (bab) - ea0380c linter/unicorn: Implement `import-style` rule (#22173) (Hao Chen) - dde40fe linter/vue: Implement no-watch-after-await rule (#22006) (bab) - a735eb0 linter/vue: Implement valid-next-tick rule (#22531) (bab) - 6dc615d linter/vue: Implement no-shared-component-data rule (#21842) (bab) - a656418 linter/vue: Implement valid-define-options rule (#22107) (bab) - bb6f1b2 linter/vue: Implement require-slots-as-functions rule (#22244) (bab) - 5fa4774 linter/n: Implement `callback-return` rule (#22470) (Mikhail Baev) ### 🐛 Bug Fixes - 52bd016 linter: Respect allow unused disable directives in LSP (#22715) (camc314) - fa7c463 semantic: Correct TS enum member symbol spans (#22689) (camc314) - ed445ba linter: Respect flags overrides for `RegExp(/regex/i, "u")` (#22678) (Sysix) - 26b9396 semantic: Resolve parameter decorators outside parameter scope (#22623) (camc314) - 203952d linter: `no-misleading-character-class` fix `is_unicode_code_point_escape` check (#22655) (Sysix) - 2f64d3d linter: `no-misleading-character-class` own diagnostic for surrogate pairs without u flag (#22654) (Sysix) - 0c6ebc2 linter/eslint/no-lone-blocks: Do not flag empty loops (#22649) (Mikhail Baev) - 2a7562e linter/no-focused-tests: Mark fixer as a suggestion (#22645) (camc314) - dbe644f linter: Respect args none for unused rest parameters (#22627) (camc314) - d0211b0 linter: Allow undefined in DummyRuleMap index (#22626) (camc314) - 36fc0ec oxlint/lsp: "ignore this" actions merge with existing directive (#22604) (Sysix) - f7f370e linter/vitest/prefer-expect-type-of: Recommend `toBeTypeOf` instead of `expectTypeOf` (#22612) (Mikhail Baev) - 77063e5 linter/consistent-indexed-object-style: Preserve interface modifiers in fixes (#22579) (camc314) - 4f33aa7 linter: Treat `TSGlobalDeclaration` as ambient in `has_ambient_typescript_ancestor` (#22577) (camc314) ### ⚡ Performance - c22938d linter/no-async-endpoint-handlers: Populate node types (#22601) (camc314) - 607486e linter/no-negated-condition: Populate node types (#22602) (camc314) - 4dcaa59 linter/consistent-type-imports: Populate node types (#22600) (camc314) - 5bd3b25 linter/no-unused-vars: Avoid cloned ancestor iterator (#22598) (camc314) - 97fe9ba linter/no-extra-non-null-assertion: Reduce node matches (#22588) (camc314) - ae98296 linter/consistent-indexed-object-style: Populate node types (#22578) (camc314) # Oxfmt ### 🚀 Features - 16b8058 oxfmt: Support `vite-plus/resolveConfig` for vite.config.ts (#22454) (leaysgur) ### 🐛 Bug Fixes - 5a26479 formatter: Preserve import phases (#22692) (Cameron) ### ⚡ Performance - 78cf83f formatter: Pre-size output buffer using source text length (#22594) (Dunqing) Co-authored-by: Dunqing <29533304+Dunqing@users.noreply.github.com>
fixes #22648. matches upstream