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

Update: Improve report location for no-unneeded-ternary (refs #12334) #13456

Merged
merged 1 commit into from Jul 7, 2020

Conversation

mdjermanovic
Copy link
Member

Prerequisites checklist

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

[X] Other, please explain:

refs #12334

This PR changes reported location in the no-unneeded-ternary rule.

This change can produce more warnings in certain cases with eslint-disable-* comments.

What changes did you make? (Give an overview)

Reported location will be now the full location or the conditional expression, instead of the start loc of its consequent.

Before this change:

image

After this change:

image

I believe it's more correct to report conditional expression's loc instead of consequent's loc, for two reasons:

  • The whole conditional expression needs to be replaced with another expression (!!b).
  • In the b ? true : false case, this expression isn't considered invalid by this rule only because of its consequent. If the alternate wasn't a boolean literal as well, this expression would be valid by this rule.

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

This change can produce new warnings, in cases like the following:

/* eslint no-unneeded-ternary: "error" */

var a = b 
  ? true // eslint-disable-line no-unneeded-ternary
  : false

user would have to change the line of the disable comment, to e.g.,:

/* eslint no-unneeded-ternary: "error" */

// eslint-disable-next-line no-unneeded-ternary
var a = b 
  ? true 
  : false

@mdjermanovic mdjermanovic added enhancement This change enhances an existing feature of ESLint rule Relates to ESLint's core rules accepted There is consensus among the team that this change meets the criteria for inclusion labels Jul 3, 2020
@kaicataldo
Copy link
Member

I think the new reported location makes a lot of sense 👍

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!

@nzakas nzakas merged commit 1050ee7 into master Jul 7, 2020
@nzakas nzakas deleted the nounneededternary-loc branch July 7, 2020 20:25
@eslint-deprecated eslint-deprecated bot locked and limited conversation to collaborators Jan 4, 2021
@eslint-deprecated eslint-deprecated bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Jan 4, 2021
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 enhancement This change enhances an existing feature of ESLint rule Relates to ESLint's core rules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants