go-tools icon indicating copy to clipboard operation
go-tools copied to clipboard

SA4006: Fix for compound operators, increment/decrement

Open arp242 opened this issue 1 year ago • 1 comments

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

arp242 avatar May 31 '24 15:05 arp242

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.

cespare avatar Sep 27 '24 06:09 cespare