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
refactor: remove Identifier
listener in no-irregular-whitespace
#17235
Conversation
✅ Deploy Preview for docs-eslint canceled.
|
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.
If we can remove this without breaking any tests then chances are it's safe to remove.
The only thing I'm not sure of is if zero-width characters are valid identifier characters. It seems we don't have any tests for that, so feel free to merge.
I believe they're not valid identifier characters. I wrote this to check if any of the irregular characters this rule checks are allowed per prod-IdentifierName: /[\p{ID_Start}\p{ID_Continue}$_\u200c\u200d]/u.test("\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000\u2028\u2029"); // false Per this test, neither of them is a valid identifier character. I'm not 100% sure that my test is correct, but either way even if the intent of the removed code was to allow irregular characters in identifiers, it wasn't working. |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.41.0` -> `8.42.0`](https://renovatebot.com/diffs/npm/eslint/8.41.0/8.42.0) | --- ### Release Notes <details> <summary>eslint/eslint</summary> ### [`v8.42.0`](https://github.com/eslint/eslint/releases/tag/v8.42.0) [Compare Source](eslint/eslint@v8.41.0...v8.42.0) #### Features - [`b8448ff`](eslint/eslint@b8448ff) feat: correct no-useless-return behaviour in try statements ([#​16996](eslint/eslint#16996)) (Nitin Kumar) #### Bug Fixes - [`a589636`](eslint/eslint@a589636) fix: Config with `ignores` and without `files` should not always apply ([#​17181](eslint/eslint#17181)) (Milos Djermanovic) - [`c4fad17`](eslint/eslint@c4fad17) fix: Correct ignore message for "node_modules" subfolders ([#​17217](eslint/eslint#17217)) (Francesco Trotta) #### Documentation - [`01d7142`](eslint/eslint@01d7142) docs: Update README (GitHub Actions Bot) - [`e5182b7`](eslint/eslint@e5182b7) docs: Update README (GitHub Actions Bot) #### Chores - [`6ca5b7c`](eslint/eslint@6ca5b7c) chore: upgrade [@​eslint/js](https://github.com/eslint/js)[@​8](https://github.com/8).42.0 ([#​17236](eslint/eslint#17236)) (Milos Djermanovic) - [`67fc5e7`](eslint/eslint@67fc5e7) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (ESLint Jenkins) - [`0892412`](eslint/eslint@0892412) refactor: remove `Identifier` listener in no-irregular-whitespace ([#​17235](eslint/eslint#17235)) (Milos Djermanovic) - [`f67d298`](eslint/eslint@f67d298) test: Add `FlatESLint` tests with missing config files ([#​17164](eslint/eslint#17164)) (Milos Djermanovic) - [`5b68d51`](eslint/eslint@5b68d51) chore: Fix `fixedsize` attribute in code path analysis DOT debug output ([#​17202](eslint/eslint#17202)) (Milos Djermanovic) - [`37432f2`](eslint/eslint@37432f2) chore: update descriptions in key-spacing tests ([#​17195](eslint/eslint#17195)) (Milos Djermanovic) </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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTMuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMy4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1923 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Prerequisites checklist
What is the purpose of this pull request? (put an "X" next to an item)
[ ] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[x] Other, please explain:
In the
no-irregular-whitespace
rule, this removes anIdentifier
listener that is essentially a no-op since theremoveInvalidNodeErrorsInIdentifierOrLiteral
function has effects only when it's given a string literal node (thetypeof node.value === "string"
condition) or a regex literal node (theBoolean(node.regex)
condition).What changes did you make? (Give an overview)
Removed the listener and renamed function
removeInvalidNodeErrorsInIdentifierOrLiteral
toremoveInvalidNodeErrorsInLiteral
.Is there anything you'd like reviewers to focus on?
I checked the commits/PRs/issues history for this rule and have no idea why it was checking Identifier nodes. The listener is present since the original commit 77b0181. The only comment I could find about it (and generally about identifiers in regard to this rule) is https://github.com/eslint/eslint/pull/2381/files#r29104317.