-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
fix(eslint-plugin): [consistent-type-assertions] wrap object return value with parentheses #6885
fix(eslint-plugin): [consistent-type-assertions] wrap object return value with parentheses #6885
Conversation
Thanks for the PR, @dora1998! 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 on https://opencollective.com/typescript-eslint. |
✅ Deploy Preview for typescript-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
bf78617
to
d2b2a32
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #6885 +/- ##
=======================================
Coverage 87.22% 87.23%
=======================================
Files 386 387 +1
Lines 13383 13401 +18
Branches 3955 3962 +7
=======================================
+ Hits 11673 11690 +17
+ Misses 1328 1327 -1
- Partials 382 384 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
|
…alue with parentheses
d2b2a32
to
8b43da5
Compare
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.
LGTM in general - and love that you're fixing an issue you filed so quickly! 😍
Just requesting changes on generalizing the fix if possible - since it's very likely to come up again. Thanks!
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.
LGTM, great test cases! Glad to see a reuse of the existing shared code. Thanks! 🙌
Since I haven't touched the getWrappingFixer
util area much, marking as 1 approval and waiting for someone else to approve as well.
cc @armano2 - is this still something you want to look at? If not, no worries, I feel comfortable merging :) |
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.
big oof - the entire packages/eslint-plugin/src/util/getWrappingFixer.ts
file probably needs to be rewritten because right now it uses its own hard-coded precedence logic, rather than using our precedence utilities
@bradzacher but It's hard to replace By the way, lint and unit test is failing in CI but successful in my local environment. Will merging the main branch fix this...? |
@@ -1,7 +1,10 @@ | |||
import type { TSESLint, TSESTree } from '@typescript-eslint/utils'; | |||
import { AST_NODE_TYPES } from '@typescript-eslint/utils'; | |||
import { isBinaryExpression, isNewExpression } from 'tsutils'; |
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.
Fun merge conflict artifact: we switched to ts-api-utils
in v6.
Yeah that should fix it. I don't like throwing extra work your way so I'll go ahead and merge now. |
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.
@armano2 do you still have time for this?
No worries if not, now that you've taken at least one look I feel comfortable re-reviewing and approving & merging if it's good to go.
@JoshuaKGoldberg Sorry for my late reply... |
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.
Swell, thanks for such a thorough change! 🙌
23ac499
into
typescript-eslint:main
Does this not make |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`6.4.1` -> `6.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.4.1/6.5.0) | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`6.4.1` -> `6.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.4.1/6.5.0) | | [@typescript-eslint/typescript-estree](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`6.4.1` -> `6.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2ftypescript-estree/6.4.1/6.5.0) | | [netlify-cli](https://github.com/netlify/cli) | devDependencies | minor | [`16.1.0` -> `16.2.0`](https://renovatebot.com/diffs/npm/netlify-cli/16.1.0/16.2.0) | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v6.5.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#650-2023-08-28) [Compare Source](typescript-eslint/typescript-eslint@v6.4.1...v6.5.0) ##### Bug Fixes - **eslint-plugin:** \[consistent-type-assertions] wrap object return value with parentheses ([#​6885](typescript-eslint/typescript-eslint#6885)) ([23ac499](typescript-eslint/typescript-eslint@23ac499)) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. #### [6.4.1](typescript-eslint/typescript-eslint@v6.4.0...v6.4.1) (2023-08-21) ##### Bug Fixes - **eslint-plugin:** \[no-unnecessary-condition] false positives with branded types ([#​7466](typescript-eslint/typescript-eslint#7466)) ([b52658f](typescript-eslint/typescript-eslint@b52658f)), closes [#​7293](typescript-eslint/typescript-eslint#7293) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v6.5.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#650-2023-08-28) [Compare Source](typescript-eslint/typescript-eslint@v6.4.1...v6.5.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. #### [6.4.1](typescript-eslint/typescript-eslint@v6.4.0...v6.4.1) (2023-08-21) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/typescript-estree)</summary> ### [`v6.5.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#650-2023-08-28) [Compare Source](typescript-eslint/typescript-eslint@v6.4.1...v6.5.0) ##### Features - bump supported TS version to 5.2 ([#​7535](typescript-eslint/typescript-eslint#7535)) ([f18c88d](typescript-eslint/typescript-eslint@f18c88d)) - support Explicit Resource Management syntax for TS 5.2 ([#​7479](typescript-eslint/typescript-eslint#7479)) ([c11e05c](typescript-eslint/typescript-eslint@c11e05c)) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. #### [6.4.1](typescript-eslint/typescript-eslint@v6.4.0...v6.4.1) (2023-08-21) **Note:** Version bump only for package [@​typescript-eslint/typescript-estree](https://github.com/typescript-eslint/typescript-estree) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>netlify/cli (netlify-cli)</summary> ### [`v16.2.0`](https://github.com/netlify/cli/blob/HEAD/CHANGELOG.md#1620-2023-08-29) [Compare Source](netlify/cli@v16.1.0...v16.2.0) ##### Features - add support for `context.params` in edge functions ([#​5964](netlify/cli#5964)) ([ed14e05](netlify/cli@ed14e05)) - support custom function routes ([#​5954](netlify/cli#5954)) ([82b94b5](netlify/cli@82b94b5)) ##### Bug Fixes - **deps:** update dependency [@​netlify/edge-bundler](https://github.com/netlify/edge-bundler) to v8.18.0 ([#​5953](netlify/cli#5953)) ([016cdf9](netlify/cli@016cdf9)) - **deps:** update dependency [@​netlify/edge-bundler](https://github.com/netlify/edge-bundler) to v8.19.0 ([#​5971](netlify/cli#5971)) ([42478fd](netlify/cli@42478fd)) - **deps:** update dependency [@​netlify/serverless-functions-api](https://github.com/netlify/serverless-functions-api) to v1.6.0 ([#​5935](netlify/cli#5935)) ([1d68354](netlify/cli@1d68354)) - **deps:** update dependency [@​netlify/serverless-functions-api](https://github.com/netlify/serverless-functions-api) to v1.7.3 ([#​5957](netlify/cli#5957)) ([57d6627](netlify/cli@57d6627)) - **deps:** update dependency lambda-local to v2.1.2 ([#​5967](netlify/cli#5967)) ([e592944](netlify/cli@e592944)) - **deps:** update netlify packages ([#​5915](netlify/cli#5915)) ([1ad27ac](netlify/cli@1ad27ac)) - **deps:** update netlify packages ([#​5965](netlify/cli#5965)) ([654c366](netlify/cli@654c366)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 3pm on Sunday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNi43NC4wIiwidXBkYXRlZEluVmVyIjoiMzYuNzQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Reviewed-on: https://git.chriswb.dev/chrisw-b/PersonalApi/pulls/3 Reviewed-by: chrisw-b <chrisw-b@noreply.localhost> Co-authored-by: Renovate Bot <renovate.bot@chrisb.xyz> Co-committed-by: Renovate Bot <renovate.bot@chrisb.xyz>
Seems to be the case. I'm using the following:
and getting the following error: |
I can't reproduce any issues using the rule in versions 6.5.0 of the parser and plugin. See https://github.com/JoshuaKGoldberg/repros/tree/consistent-type-assertions-type-information. By the way, if you think there's a bug in typescript-eslint, the right way to ask is to file a new issue. The issue templates include helpful & necessary practices such as making sure you're on the latest version of all our packages. And it's much easier for us as maintainers to not lose track of things posted as issues. Our contributing guide doesn't explicitly ask not to post tangential questions on closed PRs, so I filed an issue to add those docs. #7586 Just to emphasize: if you're experiencing an issue with typescript-eslint, please file an issue with the appropriate template. Please. 🙂 |
PR Checklist
Overview
Wrap type assertion with parentheses if object literal type and used as return value of arrow function.