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

SA4006: Fix for compound operators, increment/decrement #1555

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

arp242
Copy link
Contributor

@arp242 arp242 commented May 31, 2024

In the case of compound operators such as +=, -=, etc we need to use the left-hand side to get the value.

For IncDec we need a different codepath from AssignStmt altogether.

Fixes #1329

In the case of compound operators such as +=, -=, etc we need to use the
left-hand side to get the value.

For IncDec we need a different codepath from AssignStmt altogether.

Fixes dominikh#1329
@cespare
Copy link

cespare commented Sep 27, 2024

Thanks for implementing this @arp242! I skimmed the code and it makes sense to me, but I'm not too familiar with staticcheck internals since all my tools are built on top of the x/tools code.

I ran this over a large code base and it worked fine and flagged one new unused write (thanks!).

I tried running it against another instance of this bug that I found in a code review recently and it wasn't flagged by this code. But after some digging I see that it's a general shortcoming of the SA4006 implementation, not this PR; I filed #1609.

Hopefully this can be incorporated into staticcheck soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SA4006: detect unused writes with +=
2 participants