Skip to content

refactor: remove Identifier listener in no-irregular-whitespace - #17235

Merged
mdjermanovic merged 1 commit into
mainfrom
noirregularwhitespace-identifier
Jun 2, 2023
Merged

mdjermanovic merged 1 commit into
mainfrom
noirregularwhitespace-identifier

Conversation

@mdjermanovic

Copy link
Copy Markdown
Member

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 an Identifier listener that is essentially a no-op since the removeInvalidNodeErrorsInIdentifierOrLiteral function has effects only when it's given a string literal node (the typeof node.value === "string" condition) or a regex literal node (the Boolean(node.regex) condition).

What changes did you make? (Give an overview)

Removed the listener and renamed function removeInvalidNodeErrorsInIdentifierOrLiteral to removeInvalidNodeErrorsInLiteral.

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.

@mdjermanovic mdjermanovic added rule Relates to ESLint's core rules chore This change is not user-facing labels Jun 2, 2023
@mdjermanovic
mdjermanovic requested a review from a team as a code owner June 2, 2023 15:46
@netlify

netlify Bot commented Jun 2, 2023 •

Copy link
Copy Markdown

✅ Deploy Preview for docs-eslint canceled.

Name Link
🔨 Latest commit ab2c4d7
🔍 Latest deploy log https://app.netlify.com/sites/docs-eslint/deploys/647a0ec18db2f700084e0eca

@nzakas nzakas left a comment

Copy link
Copy Markdown
Member

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.

@mdjermanovic
mdjermanovic merged commit 0892412 into main Jun 2, 2023
@mdjermanovic
mdjermanovic deleted the noirregularwhitespace-identifier branch June 2, 2023 20:28
@mdjermanovic

Copy link
Copy Markdown
Member Author

if zero-width characters are valid identifier characters

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.

crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Jun 8, 2023
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 ([#&#8203;16996](eslint/eslint#16996)) (Nitin Kumar)

#### Bug Fixes

-   [`a589636`](eslint/eslint@a589636) fix: Config with `ignores` and without `files` should not always apply ([#&#8203;17181](eslint/eslint#17181)) (Milos Djermanovic)
-   [`c4fad17`](eslint/eslint@c4fad17) fix: Correct ignore message for "node_modules" subfolders ([#&#8203;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 [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).42.0 ([#&#8203;17236](eslint/eslint#17236)) (Milos Djermanovic)
-   [`67fc5e7`](eslint/eslint@67fc5e7) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`0892412`](eslint/eslint@0892412) refactor: remove `Identifier` listener in no-irregular-whitespace ([#&#8203;17235](eslint/eslint#17235)) (Milos Djermanovic)
-   [`f67d298`](eslint/eslint@f67d298) test: Add `FlatESLint` tests with missing config files ([#&#8203;17164](eslint/eslint#17164)) (Milos Djermanovic)
-   [`5b68d51`](eslint/eslint@5b68d51) chore: Fix `fixedsize` attribute in code path analysis DOT debug output ([#&#8203;17202](eslint/eslint#17202)) (Milos Djermanovic)
-   [`37432f2`](eslint/eslint@37432f2) chore: update descriptions in key-spacing tests ([#&#8203;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 <[email protected]>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1923
Reviewed-by: Epsilon_02 <[email protected]>
Co-authored-by: Calciumdibromid Bot <[email protected]>
Co-committed-by: Calciumdibromid Bot <[email protected]>
@eslint-github-bot eslint-github-bot Bot locked and limited conversation to collaborators Nov 30, 2023
@eslint-github-bot eslint-github-bot Bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Nov 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

archived due to age This issue has been archived; please open a new issue for any further discussion chore This change is not user-facing rule Relates to ESLint's core rules

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants