Nope, it is not.
x = 5
i = 2
x -= i // x => 3
while
x = 5
i = 2
x = -i // x => -2
x=-i is the unary minus operator which negates the value right of it. It doesn’t matter if that value is a literal (-3), a variable (-i) or a function (-f()).
x-=i is short for x = x-i, and here it’s a binary subtraction, so x is set to the result of i subtracted from x.






Works fine in any language I ever used.
I’m honestly quite surprised that this very basic language feature is even a matter of discussion here.