Skip to content

fix(noVueDuplicateKeys): fix false positives when keys are defined in watch#9266

Merged
dyc3 merged 1 commit intomainfrom
dyc3/fix-no-vue-dupe-watcher-false-positive
Feb 27, 2026
Merged

fix(noVueDuplicateKeys): fix false positives when keys are defined in watch#9266
dyc3 merged 1 commit intomainfrom
dyc3/fix-no-vue-dupe-watcher-false-positive

Conversation

@dyc3
Copy link
Contributor

@dyc3 dyc3 commented Feb 27, 2026

Summary

fixes #9250

Test Plan

snapshots

Docs

@changeset-bot
Copy link

changeset-bot bot commented Feb 27, 2026

🦋 Changeset detected

Latest commit: a14eb6c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added A-Linter Area: linter L-JavaScript Language: JavaScript and super languages labels Feb 27, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9a23352 and a14eb6c.

⛔ Files ignored due to path filters (1)
  • crates/biome_js_analyze/tests/specs/correctness/noVueDuplicateKeys/valid-watch.vue.snap is excluded by !**/*.snap and included by **
📒 Files selected for processing (3)
  • .changeset/quick-hands-show.md
  • crates/biome_js_analyze/src/lint/correctness/no_vue_duplicate_keys.rs
  • crates/biome_js_analyze/tests/specs/correctness/noVueDuplicateKeys/valid-watch.vue

Walkthrough

This PR addresses a false positive in the noVueDuplicateKeys linter rule by excluding watcher declarations from duplicate key analysis. The changeset documents a patch release, the rule logic is updated to filter out watchers when collecting Vue declarations, and a test case is added demonstrating that properties can legitimately appear in both the props and watch blocks without triggering the rule.

Possibly related PRs

Suggested labels

A-Linter, L-JavaScript, D-Vue

Suggested reviewers

  • ematipico
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main fix: preventing false positives in noVueDuplicateKeys when keys are defined in watch sections.
Description check ✅ Passed The description references issue #9250 and explains the fix with test snapshots, directly addressing the linked issue's problem.
Linked Issues check ✅ Passed The PR successfully addresses issue #9250 by modifying the linter to exclude Watcher declarations from duplicate-key analysis, eliminating false positives when props are watched [#9250].
Out of Scope Changes check ✅ Passed All changes are scoped to fixing the noVueDuplicateKeys rule: the implementation fix, test file, and changeset entry. No unrelated modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dyc3/fix-no-vue-dupe-watcher-false-positive

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Comment @coderabbitai help to get the list of available commands and usage tips.

@codspeed-hq
Copy link

codspeed-hq bot commented Feb 27, 2026

Merging this PR will not alter performance

✅ 58 untouched benchmarks
⏩ 156 skipped benchmarks1


Comparing dyc3/fix-no-vue-dupe-watcher-false-positive (a14eb6c) with main (32dad2d)

Open in CodSpeed

Footnotes

  1. 156 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@dyc3 dyc3 merged commit 84935a4 into main Feb 27, 2026
18 checks passed
@dyc3 dyc3 deleted the dyc3/fix-no-vue-dupe-watcher-false-positive branch February 27, 2026 17:38
@github-actions github-actions bot mentioned this pull request Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Linter Area: linter L-JavaScript Language: JavaScript and super languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

💅 False positive for vue noVueDuplicateKeys

2 participants