Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix(eslint-plugin): [prefer-optional-chain] fixThisExpression andPrivateIdentifier errors#6028

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation

omril1
Copy link
Contributor

PR Checklist

Overview

This only prevents the plugin from crashing, I tried to support the syntax as well but got into a weird behavior from the fixer reverting the fix

@typescript-eslint
Copy link
Contributor

Thanks for the PR,@omril1!

typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community.

The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately.

Thanks again!


🙏Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently onhttps://opencollective.com/typescript-eslint.

@nx-cloud
Copy link

nx-cloudbot commentedNov 17, 2022
edited
Loading

☁️ Nx Cloud Report

CI is running/has finished running commands for commit37716b2. As they complete they will appear below. Click to see the status, the terminal output, and the build insights.

📂 See all runs for this branch


✅ Successfully ran 47 targets

Sent with 💌 fromNxCloud.

@netlify
Copy link

netlifybot commentedNov 17, 2022
edited
Loading

Deploy Preview fortypescript-eslint ready!

NameLink
🔨 Latest commit37716b2
🔍 Latest deploy loghttps://app.netlify.com/sites/typescript-eslint/deploys/63d8a463626f820009c332ba
😎 Deploy Previewhttps://deploy-preview-6028--typescript-eslint.netlify.app
📱 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 yourNetlify site settings.

Comment on lines 197 to 203
// private properties
'this.#a && this.#b;',
'!this.#a || !this.#b;',
'a.#foo && a.#foo.bar;',
'!a.#foo || !a.#foo.bar;',
'a.#foo?.bar;',
'!a.#foo?.bar;',
Copy link
Member

@Josh-CenaJosh-CenaNov 17, 2022
edited
Loading

Choose a reason for hiding this comment

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

More test cases to consider:

foo().#aa.b.#anewA().#b(awaita).#b

I have no idea why this rule is so strict about what expressions it can lint, but you can in fact use private properties on all expressions, just that some may have nonsensical behaviors (e.g.(typeof a).#a). It shouldn't crash the linter anyway.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

Can I fix the rule to not intentionally throw? this seems irrational to me.
It's better to not show a suggestion than to just break and do nothing

Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

I would love to change this rule to not intentionally throw, or at least catch the error.
The rule logic now has many combinations that could be missed and better be gracefully ignored.

@Josh-Cena@JoshuaKGoldberg@bradzacher WDYT?

Choose a reason for hiding this comment

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

Yeah as Brad said in#6028 (comment), I think the rule should no longer throw. Throwing is useful for us finding missing combinations but is inconvenient for users.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

Oh, so I misunderstood his comment

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
@codecov
Copy link

codecovbot commentedNov 18, 2022
edited
Loading

Codecov Report

Merging#6028 (37716b2) intomain (202d9fb) willdecrease coverage by0.01%.
The diff coverage is91.66%.

Additional details and impacted files
@@            Coverage Diff             @@##             main    #6028      +/-   ##==========================================- Coverage   91.37%   91.36%   -0.01%==========================================  Files         368      368                Lines       12596    12605       +9       Branches     3709     3713       +4     ==========================================+ Hits        11509    11516       +7- Misses        772      773       +1- Partials      315      316       +1
FlagCoverage Δ
unittest91.36% <91.66%> (-0.01%)⬇️

Flags with carried forward coverage won't be shown.Click here to find out more.

Impacted FilesCoverage Δ
...s/eslint-plugin/src/rules/prefer-optional-chain.ts97.50% <91.66%> (-1.18%)⬇️

@bradzacherbradzacher changed the titlefix(eslint-plugin) [prefer-optional-chain] - FixThisExpression andPrivateIdentifierfix(eslint-plugin) [prefer-optional-chain] fixThisExpression andPrivateIdentifier errorsNov 18, 2022
@bradzacherbradzacher added the bugSomething isn't working labelNov 18, 2022
@JoshuaKGoldberg
Copy link
Member

Something funky is up with the Git history 🤔

bradzacher and omril1 reacted with thumbs up emoji

@bradzacherbradzacher changed the titlefix(eslint-plugin) [prefer-optional-chain] fixThisExpression andPrivateIdentifier errorsfix(eslint-plugin): [prefer-optional-chain] fixThisExpression andPrivateIdentifier errorsNov 23, 2022
@bradzacherbradzacher added the awaiting responseIssues waiting for a reply from the OP or another party labelNov 24, 2022
@bradzacher
Copy link
Member

it looks like you might have rebased weirdly or something? it's borked the PR contents!

could you please update your branch so it just contains your commits - thanks!
(feel free to force-push to fix this)

@omril1omril1force-pushed thefix/issue6024-fix-prefer-optional-chain-private-and-this-in-negated-or branch frome647994 to7e2185eCompareNovember 24, 2022 04:36
Comment on lines 371 to 379
if (
[
AST_NODE_TYPES.TSAsExpression,
AST_NODE_TYPES.AwaitExpression,
AST_NODE_TYPES.NewExpression,
].includes(node.object.type)
) {
return '';
}
Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

This feels a bit like a hack since typescript doesn't seem to think they are assignable toMemberExpression
if (node.object.type === AST_NODE_TYPES.TSAsExpression) {} shows a typescript error, but with Array#includes it does not

Copy link
Member

@JoshuaKGoldbergJoshuaKGoldbergDec 17, 2022
edited
Loading

Choose a reason for hiding this comment

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

It is a bit of a hack 😄 but the root cause is a bug in our typings, I think. A node's membercan be anawait ornew. [typescript-eslint playground]

constexample={}asany;(awaitexample).prop;(awaitnewexample).prop;

For now, you can use a// @ts-expect-error and link to#6239#6192

@omril1omril1 requested review fromJoshuaKGoldberg and removed request forbradzacher andJoshuaKGoldbergDecember 17, 2022 00:12
@omril1omril1 requested review fromJoshuaKGoldberg and removed request forbradzacherDecember 24, 2022 12:15
Copy link
Member

@JoshuaKGoldbergJoshuaKGoldberg left a comment

Choose a reason for hiding this comment

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

Still a few comments please 😇

@omril1omril1 requested review frombradzacher and removed request forJoshuaKGoldbergDecember 24, 2022 18:36
@omril1omril1 requested review fromJoshuaKGoldberg and removed request forbradzacherJanuary 13, 2023 21:37
@bradzacherbradzacher removed the awaiting responseIssues waiting for a reply from the OP or another party labelJan 19, 2023
bradzacher
bradzacher previously approved these changesJan 30, 2023
@bradzacher
Copy link
Member

fix the merge conflicts and we can get this in!
thanks for your work!

omril1 reacted with thumbs up emoji

@bradzacherbradzacher added the awaiting responseIssues waiting for a reply from the OP or another party labelJan 30, 2023
…refer-optional-chain-private-and-this-in-negated-or# Conflicts:#packages/eslint-plugin/src/rules/prefer-optional-chain.ts#packages/eslint-plugin/tests/rules/prefer-optional-chain/prefer-optional-chain.test.ts
@omril1
Copy link
ContributorAuthor

@bradzacher Thanks, fixed the conflict

mredaelli reacted with heart emoji

@bradzacherbradzacher removed the awaiting responseIssues waiting for a reply from the OP or another party labelJan 31, 2023
@bradzacherbradzacher merged commit85e783c intotypescript-eslint:mainJan 31, 2023
@omril1omril1 deleted the fix/issue6024-fix-prefer-optional-chain-private-and-this-in-negated-or branchJanuary 31, 2023 07:43
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull requestFeb 2, 2023
This PR contains the following updates:| Package | Type | Update | Change ||---|---|---|---|| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.48.2` -> `5.50.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.48.2/5.50.0) || [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.48.2` -> `5.50.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.48.2/5.50.0) |---### Release Notes<details><summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>### [`v5.50.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#&#8203;5500-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5490v5500-2023-01-31)[Compare Source](typescript-eslint/typescript-eslint@v5.49.0...v5.50.0)##### Bug Fixes-   **eslint-plugin:** \[ban-ts-comment] counts graphemes instead of `String.prototype.length` ([#&#8203;5704](typescript-eslint/typescript-eslint#5704)) ([09d57ce](typescript-eslint/typescript-eslint@09d57ce))-   **eslint-plugin:** \[prefer-optional-chain] fix `ThisExpression` and `PrivateIdentifier` errors ([#&#8203;6028](typescript-eslint/typescript-eslint#6028)) ([85e783c](typescript-eslint/typescript-eslint@85e783c))-   **eslint-plugin:** \[prefer-optional-chain] fixer produces wrong logic ([#&#8203;5919](typescript-eslint/typescript-eslint#5919)) ([b0f6c8e](typescript-eslint/typescript-eslint@b0f6c8e)), closes [#&#8203;1438](typescript-eslint/typescript-eslint#1438)##### Features-   **eslint-plugin:** add `key-spacing` rule extension for interface & type declarations ([#&#8203;6211](typescript-eslint/typescript-eslint#6211)) ([67706e7](typescript-eslint/typescript-eslint@67706e7))### [`v5.49.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#&#8203;5490-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5482v5490-2023-01-23)[Compare Source](typescript-eslint/typescript-eslint@v5.48.2...v5.49.0)##### Features-   **eslint-plugin:** \[naming-convention] add support for `#private` modifier on class members ([#&#8203;6259](typescript-eslint/typescript-eslint#6259)) ([c8a6d80](typescript-eslint/typescript-eslint@c8a6d80))#### [5.48.2](typescript-eslint/typescript-eslint@v5.48.1...v5.48.2) (2023-01-16)**Note:** Version bump only for package [@&#8203;typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin)#### [5.48.1](typescript-eslint/typescript-eslint@v5.48.0...v5.48.1) (2023-01-09)**Note:** Version bump only for package [@&#8203;typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin)</details><details><summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>### [`v5.50.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#&#8203;5500-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5490v5500-2023-01-31)[Compare Source](typescript-eslint/typescript-eslint@v5.49.0...v5.50.0)**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)### [`v5.49.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#&#8203;5490-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5482v5490-2023-01-23)[Compare Source](typescript-eslint/typescript-eslint@v5.48.2...v5.49.0)**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)#### [5.48.2](typescript-eslint/typescript-eslint@v5.48.1...v5.48.2) (2023-01-16)**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)#### [5.48.1](typescript-eslint/typescript-eslint@v5.48.0...v5.48.1) (2023-01-09)**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTQuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExOS4yIn0=-->Co-authored-by: cabr2-bot <cabr2.help@gmail.com>Reviewed-on:https://codeberg.org/Calciumdibromid/CaBr2/pulls/1757Reviewed-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>
@github-actionsgithub-actionsbot locked asresolvedand limited conversation to collaboratorsFeb 8, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@Josh-CenaJosh-CenaJosh-Cena left review comments

@bradzacherbradzacherbradzacher left review comments

@JoshuaKGoldbergJoshuaKGoldbergAwaiting requested review from JoshuaKGoldberg

Assignees

@bradzacherbradzacher

Labels
bugSomething isn't working
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Bug: [prefer-optional-chain] Unexpected member property type: ThisExpression
4 participants
@omril1@JoshuaKGoldberg@bradzacher@Josh-Cena

[8]ページ先頭

©2009-2025 Movatter.jp