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

chore: update description of SourceCode#getDeclaredVariables #17072

Merged
merged 1 commit into from Apr 9, 2023

Conversation

mdjermanovic
Copy link
Member

@mdjermanovic mdjermanovic commented Apr 8, 2023

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:

Refs discussion under #17059 (comment).

In my opinion, the current JSDoc description of SourceCode#getDeclaredVariables is misleading because it suggests that this method returns getScope(node).variables. Considering the name of this method, that would make sense for readers, but it isn't really what this method returns.

What changes did you make? (Give an overview)

Updated the JSDoc description of SourceCode#getDeclaredVariables.

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

The most accurate and least confusing description is the one in https://eslint.org/docs/latest/extend/custom-rules, which describes what this method returns for each node type:

* `getDeclaredVariables(node)` - (**Deprecated:** Use `SourceCode#getDeclaredVariables(node)` instead.) returns a list of [variables](./scope-manager-interface#variable-interface) declared by the given node. This information can be used to track references to variables.
* If the node is a `VariableDeclaration`, all variables declared in the declaration are returned.
* If the node is a `VariableDeclarator`, all variables declared in the declarator are returned.
* If the node is a `FunctionDeclaration` or `FunctionExpression`, the variable for the function name is returned, in addition to variables for the function parameters.
* If the node is an `ArrowFunctionExpression`, variables for the parameters are returned.
* If the node is a `ClassDeclaration` or a `ClassExpression`, the variable for the class name is returned.
* If the node is a `CatchClause`, the variable for the exception is returned.
* If the node is an `ImportDeclaration`, variables for all of its specifiers are returned.
* If the node is an `ImportSpecifier`, `ImportDefaultSpecifier`, or `ImportNamespaceSpecifier`, the declared variable is returned.
* Otherwise, if the node does not declare any variables, an empty array is returned.

Perhaps we should also copy & paste that list into the JSDoc description, or add a reference to this document.

@mdjermanovic mdjermanovic added the documentation Relates to ESLint's documentation label Apr 8, 2023
@mdjermanovic mdjermanovic requested a review from a team as a code owner April 8, 2023 10:35
@eslint-github-bot eslint-github-bot bot added the chore This change is not user-facing label Apr 8, 2023
@netlify
Copy link

netlify bot commented Apr 8, 2023

Deploy Preview for docs-eslint canceled.

Name Link
🔨 Latest commit 89d6013
🔍 Latest deploy log https://app.netlify.com/sites/docs-eslint/deploys/64314357098e7e000819d850

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. Will leave it open in case someone else wants to review it.

Copy link
Member

@fasttime fasttime left a comment

Choose a reason for hiding this comment

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

Thanks for the edit, this makes sense to me. Won't this change conflict with #17059 if we merge it now?

#17059 is merged now, so okay to merging this PR. @mdjermanovic Would you still like to add a reference to the section about getDeclaredVariables() in custom-rules.md?

@mdjermanovic
Copy link
Member Author

@mdjermanovic Would you still like to add a reference to the section about getDeclaredVariables() in custom-rules.md?

Since there isn't currently a separate, linkable section at the moment, I think this would be fine for now.

Copy link
Member

@fasttime fasttime 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 again.

@fasttime fasttime merged commit 0a7b60a into main Apr 9, 2023
20 of 21 checks passed
@fasttime fasttime deleted the getdeclaredvariables-description branch April 9, 2023 04:16
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Apr 27, 2023
This PR contains the following updates:

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

---

### Release Notes

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

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

[Compare Source](eslint/eslint@v8.38.0...v8.39.0)

#### Features

-   [`3f7af9f`](eslint/eslint@3f7af9f) feat: Implement `SourceCode#markVariableAsUsed()` ([#&#8203;17086](eslint/eslint#17086)) (Nicholas C. Zakas)

#### Documentation

-   [`6987dc5`](eslint/eslint@6987dc5) docs: Fix formatting in Custom Rules docs ([#&#8203;17097](eslint/eslint#17097)) (Milos Djermanovic)
-   [`4ee92e5`](eslint/eslint@4ee92e5) docs: Update README (GitHub Actions Bot)
-   [`d8e9887`](eslint/eslint@d8e9887) docs: Custom Rules cleanup/expansion ([#&#8203;16906](eslint/eslint#16906)) (Ben Perlmutter)
-   [`1fea279`](eslint/eslint@1fea279) docs: Clarify how to add to tsc agenda ([#&#8203;17084](eslint/eslint#17084)) (Nicholas C. Zakas)
-   [`970ef1c`](eslint/eslint@970ef1c) docs: Update triage board location (Nicholas C. Zakas)
-   [`6d8bffd`](eslint/eslint@6d8bffd) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`60a6f26`](eslint/eslint@60a6f26) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).39.0 ([#&#8203;17102](eslint/eslint#17102)) (Milos Djermanovic)
-   [`d5ba5c0`](eslint/eslint@d5ba5c0) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`f57eff2`](eslint/eslint@f57eff2) ci: run tests on Node.js v20 ([#&#8203;17093](eslint/eslint#17093)) (Nitin Kumar)
-   [`9d1b8fc`](eslint/eslint@9d1b8fc) perf: Binary search in token store `utils.search` ([#&#8203;17066](eslint/eslint#17066)) (Francesco Trotta)
-   [`07a4435`](eslint/eslint@07a4435) chore: Add request for minimal repro to bug report ([#&#8203;17081](eslint/eslint#17081)) (Nicholas C. Zakas)
-   [`eac4943`](eslint/eslint@eac4943) refactor: remove unnecessary use of `SourceCode#getAncestors` in rules ([#&#8203;17075](eslint/eslint#17075)) (Milos Djermanovic)
-   [`0a7b60a`](eslint/eslint@0a7b60a) chore: update description of `SourceCode#getDeclaredVariables` ([#&#8203;17072](eslint/eslint#17072)) (Milos Djermanovic)
-   [`6e2df71`](eslint/eslint@6e2df71) chore: remove unnecessary references to the LICENSE file ([#&#8203;17071](eslint/eslint#17071)) (Milos Djermanovic)

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

[Compare Source](eslint/eslint@v8.37.0...v8.38.0)

#### Features

-   [`a1d561d`](eslint/eslint@a1d561d) feat: Move getDeclaredVariables and getAncestors to SourceCode ([#&#8203;17059](eslint/eslint#17059)) (Nicholas C. Zakas)

#### Bug Fixes

-   [`1c1ece2`](eslint/eslint@1c1ece2) fix: do not report on `RegExp(...args)` in `require-unicode-regexp` ([#&#8203;17037](eslint/eslint#17037)) (Francesco Trotta)

#### Documentation

-   [`7162d34`](eslint/eslint@7162d34) docs: Mention new config system is complete ([#&#8203;17068](eslint/eslint#17068)) (Nicholas C. Zakas)
-   [`0fd6bb2`](eslint/eslint@0fd6bb2) docs: Update README (GitHub Actions Bot)
-   [`c83531c`](eslint/eslint@c83531c) docs: Update/remove external links, eg. point to `eslint-community` ([#&#8203;17061](eslint/eslint#17061)) (Pelle Wessman)
-   [`a3aa6f5`](eslint/eslint@a3aa6f5) docs: Clarify `no-div-regex` rule docs ([#&#8203;17051](eslint/eslint#17051)) (Francesco Trotta)
-   [`b0f11cf`](eslint/eslint@b0f11cf) docs: Update README (GitHub Actions Bot)
-   [`da8d52a`](eslint/eslint@da8d52a) docs: Update the second object instance for the "no-new" rule ([#&#8203;17020](eslint/eslint#17020)) (Ahmadou Waly NDIAYE)
-   [`518130a`](eslint/eslint@518130a) docs: switch language based on current path ([#&#8203;16687](eslint/eslint#16687)) (Percy Ma)
-   [`24206c4`](eslint/eslint@24206c4) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`59ed060`](eslint/eslint@59ed060) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).38.0 ([#&#8203;17069](eslint/eslint#17069)) (Milos Djermanovic)
-   [`88c0898`](eslint/eslint@88c0898) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`cf682d2`](eslint/eslint@cf682d2) refactor: simplify new-parens rule schema ([#&#8203;17060](eslint/eslint#17060)) (MHO)
-   [`0dde022`](eslint/eslint@0dde022) ci: bump actions/add-to-project from 0.4.1 to 0.5.0 ([#&#8203;17055](eslint/eslint#17055)) (dependabot\[bot])

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNTUuMSJ9-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1852
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>
@eslint-github-bot eslint-github-bot bot locked and limited conversation to collaborators Oct 7, 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 Oct 7, 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 documentation Relates to ESLint's documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants