Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: incorrect constantViolations with destructuring #16522

Merged
merged 5 commits into from
Jun 4, 2024

Conversation

liuxingbaoyu
Copy link
Member

Q                       A
Fixed Issues? Fixes #16512
Patch: Bug Fix?
Major: Breaking Change?
Minor: New Feature?
Tests Added + Pass?
Documentation PR Link
Any Dependency Changes?
License MIT

@@ -833,7 +833,13 @@ class Scope {

// A redeclaration of an existing variable is a modification
if (local) {
this.registerConstantViolation(bindingPath);
// this.registerConstantViolation(bindingPath);
const ids = path.getBindingIdentifiers();
Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe we can use the ids above here, and the replacement will pass all tests in our repository.
The difference is getOuterBindingIdentifiers vs getBindingIdentifiers. It seems that the first one is more appropriate to use here?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes. We should reuse the ids above, and we don't have to loop through the binding identifiers again, we can just call local.reassign(bindingPath).

@babel-bot
Copy link
Collaborator

babel-bot commented May 21, 2024

Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/57113

@liuxingbaoyu liuxingbaoyu added PR: Bug Fix 🐛 A type of pull request used for our changelog categories pkg: traverse (scope) labels May 21, 2024
liuxingbaoyu and others added 5 commits June 4, 2024 17:08
Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
@liuxingbaoyu liuxingbaoyu force-pushed the fix-constantViolations branch from 0063463 to ec8ae8d Compare June 4, 2024 09:08
@nicolo-ribaudo nicolo-ribaudo changed the title fix: @babel/traverse incorrect constantViolations with destructuring fix: incorrect constantViolations with destructuring Jun 4, 2024
@nicolo-ribaudo nicolo-ribaudo merged commit 4463aa5 into babel:main Jun 4, 2024
52 checks passed
Vylpes pushed a commit to Vylpes/random-bunny that referenced this pull request Jun 10, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@babel/traverse](https://babel.dev/docs/en/next/babel-traverse) ([source](https://github.com/babel/babel)) | resolutions | patch | [`7.24.1` -> `7.24.7`](https://renovatebot.com/diffs/npm/@babel%2ftraverse/7.24.1/7.24.7) |

---

### Release Notes

<details>
<summary>babel/babel (@&#8203;babel/traverse)</summary>

### [`v7.24.7`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7247-2024-06-05)

[Compare Source](babel/babel@v7.24.6...v7.24.7)

##### 🐛 Bug Fix

-   `babel-node`
    -   [#&#8203;16554](babel/babel#16554) Allow extra flags in babel-node ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-traverse`
    -   [#&#8203;16522](babel/babel#16522) fix: incorrect `constantViolations` with destructuring ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))
-   `babel-helper-transform-fixture-test-runner`, `babel-plugin-proposal-explicit-resource-management`
    -   [#&#8203;16524](babel/babel#16524) fix: Transform `using` in `switch` correctly ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))

##### 🏠 Internal

-   `babel-helpers`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
    -   [#&#8203;16525](babel/babel#16525) Delete unused array helpers ([@&#8203;blakewilson](https://github.com/blakewilson))

### [`v7.24.6`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7246-2024-05-24)

[Compare Source](babel/babel@v7.24.5...v7.24.6)

##### 🐛 Bug Fix

-   `babel-helper-create-class-features-plugin`, `babel-plugin-transform-class-properties`
    -   [#&#8203;16514](babel/babel#16514) Fix source maps for private member expressions ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-core`, `babel-generator`, `babel-plugin-transform-modules-commonjs`
    -   [#&#8203;16515](babel/babel#16515) Fix source maps for template literals ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators`
    -   [#&#8203;16485](babel/babel#16485) Support undecorated static accessor in anonymous classes ([@&#8203;JLHwung](https://github.com/JLHwung))
    -   [#&#8203;16484](babel/babel#16484) Fix decorator bare yield await ([@&#8203;JLHwung](https://github.com/JLHwung))
-   `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-runtime-corejs3`
    -   [#&#8203;16483](babel/babel#16483) Fix: throw TypeError if addInitializer is called after finished ([@&#8203;JLHwung](https://github.com/JLHwung))
-   `babel-parser`, `babel-plugin-transform-typescript`
    -   [#&#8203;16476](babel/babel#16476) fix: Correctly parse `cls.fn<C> = x` ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))

##### 🏠 Internal

-   `babel-core`, `babel-helpers`, `babel-plugin-transform-runtime`, `babel-preset-env`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
    -   [#&#8203;16501](babel/babel#16501) Generate helper metadata at build time ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-helpers`
    -   [#&#8203;16499](babel/babel#16499) Add `tsconfig.json` for `@babel/helpers/src/helpers` ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-cli`, `babel-helpers`, `babel-plugin-external-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-modules-commonjs`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-runtime`, `babel-preset-env`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
    -   [#&#8203;16495](babel/babel#16495) Move all runtime helpers to individual files ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-parser`, `babel-traverse`
    -   [#&#8203;16482](babel/babel#16482) Statically generate boilerplate for bitfield accessors ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   Other
    -   [#&#8203;16466](babel/babel#16466) Migrate import assertions syntax ([@&#8203;JLHwung](https://github.com/JLHwung))

### [`v7.24.5`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7245-2024-04-29)

[Compare Source](babel/babel@v7.24.1...v7.24.5)

##### 🐛 Bug Fix

-   `babel-plugin-transform-classes`, `babel-traverse`
    -   [#&#8203;16377](babel/babel#16377) fix: TypeScript annotation affects output ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))
-   `babel-helpers`, `babel-plugin-proposal-explicit-resource-management`, `babel-runtime-corejs3`
    -   [#&#8203;16440](babel/babel#16440) Fix suppressed error order ([@&#8203;sossost](https://github.com/sossost))
    -   [#&#8203;16408](babel/babel#16408) Await nullish async disposable ([@&#8203;JLHwung](https://github.com/JLHwung))

##### 💅 Polish

-   `babel-parser`
    -   [#&#8203;16407](babel/babel#16407) Recover from exported `using` declaration ([@&#8203;JLHwung](https://github.com/JLHwung))

##### 🏠 Internal

-   Other
    -   [#&#8203;16414](babel/babel#16414) Relax ESLint peerDependency constraint to allow v9 ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))
-   `babel-parser`
    -   [#&#8203;16425](babel/babel#16425) Improve `@babel/parser` AST types ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
    -   [#&#8203;16417](babel/babel#16417) Always pass type argument to `.startNode` ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-helper-create-class-features-plugin`, `babel-helper-member-expression-to-functions`, `babel-helper-module-transforms`, `babel-helper-split-export-declaration`, `babel-helper-wrap-function`, `babel-helpers`, `babel-plugin-bugfix-firefox-class-in-computed-class-key`, `babel-plugin-proposal-explicit-resource-management`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-destructuring`, `babel-plugin-transform-object-rest-spread`, `babel-plugin-transform-optional-chaining`, `babel-plugin-transform-parameters`, `babel-plugin-transform-private-property-in-object`, `babel-plugin-transform-react-jsx-self`, `babel-plugin-transform-typeof-symbol`, `babel-plugin-transform-typescript`, `babel-traverse`
    -   [#&#8203;16439](babel/babel#16439) Make `NodePath<T | U>` distributive ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-plugin-proposal-partial-application`, `babel-types`
    -   [#&#8203;16421](babel/babel#16421) Remove `JSXNamespacedName` from valid `CallExpression` args ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-plugin-transform-class-properties`, `babel-preset-env`
    -   [#&#8203;16406](babel/babel#16406) Do not load unnecessary Babel 7 syntax plugins in Babel 8 ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))

##### 🏃‍♀️ Performance

-   `babel-helpers`, `babel-preset-env`, `babel-runtime-corejs3`
    -   [#&#8203;16357](babel/babel#16357) Performance: improve `objectWithoutPropertiesLoose` on V8 ([@&#8203;romgrk](https://github.com/romgrk))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://git.vylpes.xyz/RabbitLabs/random-bunny/pulls/173
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
@github-actions github-actions bot added the outdated A closed issue/PR that is archived due to age. Recommended to make a new issue label Sep 4, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated A closed issue/PR that is archived due to age. Recommended to make a new issue pkg: traverse (scope) PR: Bug Fix 🐛 A type of pull request used for our changelog categories
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: @babel/traverse incorrect constantViolations with destructuring
4 participants