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

feat: check assignment patterns in no-underscore-dangle #16693

Merged
merged 1 commit into from Dec 28, 2022

Conversation

mdjermanovic
Copy link
Member

Prerequisites checklist

What is the purpose of this pull request? (put an "X" next to an item)

[ ] Documentation update
[x] 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
[ ] Other, please explain:

Tell us about your environment:

  • ESLint Version: main branch
  • Node Version: v16.14.0
  • npm Version: 8.3.1

What parser (default, @babel/eslint-parser, @typescript-eslint/parser, etc.) are you using?

default

Please show your full configuration:

Configuration
module.exports = {
    parserOptions: {
        ecmaVersion: 2015
    },
    rules: {
        "no-underscore-dangle": ["error", { allowInArrayDestructuring: false, allowInObjectDestructuring: false }]
    }
};

What did you do? Please include the actual source code causing the issue.

const [_foo = 1] = arr;

const { _bar = 1 } = obj;

What did you expect to happen?

Two no-underscore-dangle errors, on _foo and _bar.

What actually happened? Please include the actual, raw output from ESLint.

No errors.

What changes did you make? (Give an overview)

In the no-underscore-dangle rule, the code that checks destructuring patterns in VariableDeclarator nodes didn't account for AssignmentPattern nodes. I simplified the code by using scope analysis (in particular, context.getDeclaredVariables), and after the change it correctly accounts for AssignmentPattern nodes.

Is there anything you'd like reviewers to focus on?

@mdjermanovic mdjermanovic added bug ESLint is working incorrectly rule Relates to ESLint's core rules accepted There is consensus among the team that this change meets the criteria for inclusion feature This change adds a new feature to ESLint labels Dec 22, 2022
@mdjermanovic mdjermanovic requested a review from a team as a code owner December 22, 2022 18:51
@netlify
Copy link

netlify bot commented Dec 22, 2022

Deploy Preview for docs-eslint ready!

Name Link
🔨 Latest commit 1c686c8
🔍 Latest deploy log https://app.netlify.com/sites/docs-eslint/deploys/63a4a71dabc5d60009ef17a7
😎 Deploy Preview https://deploy-preview-16693--docs-eslint.netlify.app/rules/no-underscore-dangle
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

Copy link
Contributor

@snitin315 snitin315 left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

I'll leave it open in case someone else wants to review it.

Comment on lines 28 to 31
var foo_;
var __proto__ = {};
foo._bar();
const [_foo, ..._bar] = list;
```
Copy link
Contributor

Choose a reason for hiding this comment

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

It's present in markdown but I don't see it in the latest deployed docs,

Screenshot 2022-12-24 at 3 57 27 PM

Copy link
Member Author

Choose a reason for hiding this comment

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

It was added in #16006 which was merged after the release. It's visible in the head version:

https://eslint.org/docs/head/rules/no-underscore-dangle

Copy link
Member

@yeonjuan yeonjuan left a comment

Choose a reason for hiding this comment

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

LGTM

@mdjermanovic mdjermanovic merged commit 52c7c73 into main Dec 28, 2022
@mdjermanovic mdjermanovic deleted the nounderscoredangle-assignmentpatterns branch December 28, 2022 10:17
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Jan 3, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.30.0` -> `8.31.0`](https://renovatebot.com/diffs/npm/eslint/8.30.0/8.31.0) |

---

### Release Notes

<details>
<summary>eslint/eslint</summary>

### [`v8.31.0`](https://github.com/eslint/eslint/releases/tag/v8.31.0)

[Compare Source](eslint/eslint@v8.30.0...v8.31.0)

#### Features

-   [`52c7c73`](eslint/eslint@52c7c73) feat: check assignment patterns in no-underscore-dangle ([#&#8203;16693](eslint/eslint#16693)) (Milos Djermanovic)
-   [`b401cde`](eslint/eslint@b401cde) feat: add options to check destructuring in no-underscore-dangle ([#&#8203;16006](eslint/eslint#16006)) (Morten Kaltoft)
-   [`30d0daf`](eslint/eslint@30d0daf) feat: group properties with values in parentheses in `key-spacing` ([#&#8203;16677](eslint/eslint#16677)) (Francesco Trotta)

#### Bug Fixes

-   [`35439f1`](eslint/eslint@35439f1) fix: correct syntax error in `prefer-arrow-callback` autofix ([#&#8203;16722](eslint/eslint#16722)) (Francesco Trotta)
-   [`87b2470`](eslint/eslint@87b2470) fix: new instance of FlatESLint should load latest config file version ([#&#8203;16608](eslint/eslint#16608)) (Milos Djermanovic)

#### Documentation

-   [`4339dc4`](eslint/eslint@4339dc4) docs: Update README (GitHub Actions Bot)
-   [`4e4049c`](eslint/eslint@4e4049c) docs: optimize code block structure ([#&#8203;16669](eslint/eslint#16669)) (Sam Chen)
-   [`54a7ade`](eslint/eslint@54a7ade) docs: do not escape code blocks of formatters examples ([#&#8203;16719](eslint/eslint#16719)) (Sam Chen)
-   [`e5ecfef`](eslint/eslint@e5ecfef) docs: Add function call example for no-undefined ([#&#8203;16712](eslint/eslint#16712)) (Elliot Huffman)
-   [`a3262f0`](eslint/eslint@a3262f0) docs: Add mastodon link ([#&#8203;16638](eslint/eslint#16638)) (Amaresh  S M)
-   [`a14ccf9`](eslint/eslint@a14ccf9) docs: clarify files property ([#&#8203;16709](eslint/eslint#16709)) (Sam Chen)
-   [`3b29eb1`](eslint/eslint@3b29eb1) docs: fix npm link ([#&#8203;16710](eslint/eslint#16710)) (Abdullah Osama)
-   [`a638673`](eslint/eslint@a638673) docs: fix search bar focus on `Esc` ([#&#8203;16700](eslint/eslint#16700)) (Shanmughapriyan S)
-   [`f62b722`](eslint/eslint@f62b722) docs: country flag missing in windows ([#&#8203;16698](eslint/eslint#16698)) (Shanmughapriyan S)
-   [`4d27ec6`](eslint/eslint@4d27ec6) docs: display zh-hans in the docs language switcher ([#&#8203;16686](eslint/eslint#16686)) (Percy Ma)
-   [`8bda20e`](eslint/eslint@8bda20e) docs: remove manually maintained anchors ([#&#8203;16685](eslint/eslint#16685)) (Percy Ma)
-   [`b68440f`](eslint/eslint@b68440f) docs: User Guide Getting Started expansion ([#&#8203;16596](eslint/eslint#16596)) (Ben Perlmutter)

#### Chores

-   [`65d4e24`](eslint/eslint@65d4e24) chore: Upgrade [@&#8203;eslint/eslintrc](https://github.com/eslint/eslintrc)[@&#8203;1](https://github.com/1).4.1 ([#&#8203;16729](eslint/eslint#16729)) (Brandon Mills)
-   [`8d93081`](eslint/eslint@8d93081) chore: fix CI failure ([#&#8203;16721](eslint/eslint#16721)) (Sam Chen)
-   [`8f17247`](eslint/eslint@8f17247) chore: Set up automatic updating of README ([#&#8203;16717](eslint/eslint#16717)) (Nicholas C. Zakas)
-   [`4cd87cb`](eslint/eslint@4cd87cb) ci: bump actions/stale from 6 to 7 ([#&#8203;16713](eslint/eslint#16713)) (dependabot\[bot])
-   [`fd20c75`](eslint/eslint@fd20c75) chore: sort package.json scripts in alphabetical order ([#&#8203;16705](eslint/eslint#16705)) (Darius Dzien)
-   [`10a5c78`](eslint/eslint@10a5c78) chore: update ignore patterns in `eslint.config.js` ([#&#8203;16678](eslint/eslint#16678)) (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:eyJjcmVhdGVkSW5WZXIiOiIzNC43Ni4yIiwidXBkYXRlZEluVmVyIjoiMzQuNzYuMiJ9-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1697
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>
kecrily added a commit to eslint/zh-hans.docs.eslint.org that referenced this pull request Feb 19, 2023
kecrily added a commit to eslint/zh-hans.docs.eslint.org that referenced this pull request Feb 25, 2023
* docs: User Guide Getting Started expansion

* docs: add options to check destructuring in no-underscore-dangle

eslint/eslint#16006

* docs: adjust some words

* docs: Add function call example for no-undefined

eslint/eslint#16712

* docs: check assignment patterns in no-underscore-dangle

eslint/eslint#16693

* update formatters

* Apply suggestions from code review

Co-authored-by: Strek <ssharishkumar@gmail.com>

---------

Co-authored-by: Strek <ssharishkumar@gmail.com>
kecrily added a commit to eslint/zh-hans.docs.eslint.org that referenced this pull request Feb 28, 2023
* docs: User Guide Getting Started expansion

* docs: add options to check destructuring in no-underscore-dangle

eslint/eslint#16006

* docs: adjust some words

* docs: Add function call example for no-undefined

eslint/eslint#16712

* docs: check assignment patterns in no-underscore-dangle

eslint/eslint#16693

* update formatters

* Apply suggestions from code review

Co-authored-by: Strek <ssharishkumar@gmail.com>

---------

Co-authored-by: Strek <ssharishkumar@gmail.com>
kecrily added a commit to eslint/zh-hans.docs.eslint.org that referenced this pull request Feb 28, 2023
kecrily added a commit to eslint/zh-hans.docs.eslint.org that referenced this pull request Feb 28, 2023
* docs: User Guide Getting Started expansion

* docs: add options to check destructuring in no-underscore-dangle

eslint/eslint#16006

* docs: adjust some words

* docs: Add function call example for no-undefined

eslint/eslint#16712

* docs: check assignment patterns in no-underscore-dangle

eslint/eslint#16693

* update formatters

* Apply suggestions from code review

Co-authored-by: Strek <ssharishkumar@gmail.com>

---------

Co-authored-by: Strek <ssharishkumar@gmail.com>
kecrily added a commit to eslint/zh-hans.docs.eslint.org that referenced this pull request Feb 28, 2023
* docs: add options to check destructuring in no-underscore-dangle

eslint/eslint#16006

* docs: check assignment patterns in no-underscore-dangle

eslint/eslint#16693

* docs: use inline code for rule options name

eslint/eslint#16768

* docs: ignore directives for no-fallthrough

eslint/eslint#16757

* docs: IA Update page URL move

eslint/eslint#16665

* update

* feat: sync v8.31.0 (#94)

* docs: User Guide Getting Started expansion

* docs: add options to check destructuring in no-underscore-dangle

eslint/eslint#16006

* docs: adjust some words

* docs: Add function call example for no-undefined

eslint/eslint#16712

* docs: check assignment patterns in no-underscore-dangle

eslint/eslint#16693

* update formatters

* Apply suggestions from code review

Co-authored-by: Strek <ssharishkumar@gmail.com>

---------

Co-authored-by: Strek <ssharishkumar@gmail.com>

* docs: add options to check destructuring in no-underscore-dangle

eslint/eslint#16006

* docs: IA Update page URL move

eslint/eslint#16665

---------

Co-authored-by: Strek <ssharishkumar@gmail.com>
@eslint-github-bot eslint-github-bot bot locked and limited conversation to collaborators Jun 27, 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 Jun 27, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion bug ESLint is working incorrectly feature This change adds a new feature to ESLint rule Relates to ESLint's core rules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants