-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
fix: incorrect constantViolations
with destructuring
#16522
Conversation
liuxingbaoyu
commented
May 21, 2024
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(); |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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)
.
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/57113 |
Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
0063463
to
ec8ae8d
Compare
@babel/traverse
incorrect constantViolations
with destructuringconstantViolations
with destructuring
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 (@​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` - [#​16554](babel/babel#16554) Allow extra flags in babel-node ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-traverse` - [#​16522](babel/babel#16522) fix: incorrect `constantViolations` with destructuring ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-helper-transform-fixture-test-runner`, `babel-plugin-proposal-explicit-resource-management` - [#​16524](babel/babel#16524) fix: Transform `using` in `switch` correctly ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) ##### 🏠 Internal - `babel-helpers`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime` - [#​16525](babel/babel#16525) Delete unused array helpers ([@​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` - [#​16514](babel/babel#16514) Fix source maps for private member expressions ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-core`, `babel-generator`, `babel-plugin-transform-modules-commonjs` - [#​16515](babel/babel#16515) Fix source maps for template literals ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators` - [#​16485](babel/babel#16485) Support undecorated static accessor in anonymous classes ([@​JLHwung](https://github.com/JLHwung)) - [#​16484](babel/babel#16484) Fix decorator bare yield await ([@​JLHwung](https://github.com/JLHwung)) - `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-runtime-corejs3` - [#​16483](babel/babel#16483) Fix: throw TypeError if addInitializer is called after finished ([@​JLHwung](https://github.com/JLHwung)) - `babel-parser`, `babel-plugin-transform-typescript` - [#​16476](babel/babel#16476) fix: Correctly parse `cls.fn<C> = x` ([@​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` - [#​16501](babel/babel#16501) Generate helper metadata at build time ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helpers` - [#​16499](babel/babel#16499) Add `tsconfig.json` for `@babel/helpers/src/helpers` ([@​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` - [#​16495](babel/babel#16495) Move all runtime helpers to individual files ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-parser`, `babel-traverse` - [#​16482](babel/babel#16482) Statically generate boilerplate for bitfield accessors ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - Other - [#​16466](babel/babel#16466) Migrate import assertions syntax ([@​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` - [#​16377](babel/babel#16377) fix: TypeScript annotation affects output ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-helpers`, `babel-plugin-proposal-explicit-resource-management`, `babel-runtime-corejs3` - [#​16440](babel/babel#16440) Fix suppressed error order ([@​sossost](https://github.com/sossost)) - [#​16408](babel/babel#16408) Await nullish async disposable ([@​JLHwung](https://github.com/JLHwung)) ##### 💅 Polish - `babel-parser` - [#​16407](babel/babel#16407) Recover from exported `using` declaration ([@​JLHwung](https://github.com/JLHwung)) ##### 🏠 Internal - Other - [#​16414](babel/babel#16414) Relax ESLint peerDependency constraint to allow v9 ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-parser` - [#​16425](babel/babel#16425) Improve `@babel/parser` AST types ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - [#​16417](babel/babel#16417) Always pass type argument to `.startNode` ([@​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` - [#​16439](babel/babel#16439) Make `NodePath<T | U>` distributive ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-plugin-proposal-partial-application`, `babel-types` - [#​16421](babel/babel#16421) Remove `JSXNamespacedName` from valid `CallExpression` args ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-plugin-transform-class-properties`, `babel-preset-env` - [#​16406](babel/babel#16406) Do not load unnecessary Babel 7 syntax plugins in Babel 8 ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 🏃♀️ Performance - `babel-helpers`, `babel-preset-env`, `babel-runtime-corejs3` - [#​16357](babel/babel#16357) Performance: improve `objectWithoutPropertiesLoose` on V8 ([@​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>