Update: Check member expressions with this
in operator-assignment
#12495
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is the purpose of this pull request? (put an "X" next to item)
[X] Bug fix
[X] Changes an existing rule
I believe this is a bug fix, but it produces more warnings.
This PR fixes two things in the
operator-assignment
rule:always
option was ignoringthis
member expressions, such asthis.x = this.x + y
.never
option was reportingthis
member expressions, but didn't auto-fix in some cases where it seems to be safe, such asthis.x += y
.What rule do you want to change?
operator-assignment
Does this change cause the rule to produce more or fewer warnings?
more
How will the change be implemented? (New option, new default behavior, etc.)?
new default behavior
Please provide some example code that this change will affect:
What does the rule currently do for this code?
No errors
What will the rule do after it's changed?
Error and autofix to:
What changes did you make? (Give an overview)
Account for
ThisExpression
in the function that compares two expressions. Also in the function that determines whether the autofix is safe.Is there anything you'd like reviewers to focus on?
All added tests in
valid
were valid before, those are just regression tests.The following tests with the
never
option had the same behavior (which is an error without autofix) before this PR, and that isn't changed.The following test with the
never
option was already an error, but wasn't being auto-fixed. That's changed now.The following tests with the default
always
options are new warnings:Can this be treated as a semver-minor bug fix that produces more warnings? There was a similar case in #12279.