fix(linter): no-misleading-character-class fix is_unicode_code_point_escape check#22655
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. This stack of pull requests is managed by Graphite. Learn more about stacking. |
510f0df to
09a70c5
Compare
ad28eef to
46d4fcf
Compare
Merging this PR will not alter performance
Comparing Footnotes
|
09a70c5 to
75c660f
Compare
46d4fcf to
64b9cd3
Compare
75c660f to
a31a88a
Compare
64b9cd3 to
820eb76
Compare
There was a problem hiding this comment.
Pull request overview
This PR adjusts the eslint/no-misleading-character-class implementation to better distinguish Unicode code point escapes (\u{...}) from Unicode code unit escapes (\u....), and updates the associated snapshot output accordingly.
Changes:
- Refines
is_unicode_code_point_escapeto check for\u{...}syntax rather than relying onCharacterKind::UnicodeEscape. - Updates diagnostics selection for surrogate-pair cases, which changes the emitted
help:text. - Refreshes the rule’s snapshot to match the new diagnostic output.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| crates/oxc_linter/src/rules/eslint/no_misleading_character_class.rs | Updates escape detection logic used to decide which surrogate-pair diagnostic/help to emit. |
| crates/oxc_linter/src/snapshots/eslint_no_misleading_character_class.snap | Updates expected snapshot output for no-misleading-character-class warnings/help text. |
a31a88a to
24a35a8
Compare
Merge activity
|
…nt_escape` check (#22655) > ## Pull request overview > > This PR adjusts the `eslint/no-misleading-character-class` implementation to better distinguish Unicode code point escapes (`\u{...}`) from Unicode code unit escapes (`\u....`), and updates the associated snapshot output accordingly. Found the right snippet and AI generated a simpler implementation 🤖
820eb76 to
2f64d3d
Compare
24a35a8 to
203952d
Compare
# 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 <[email protected]>

Found the right snippet and AI generated a simpler implementation 🤖