Although the compiler became much better at detecting unused assignments to variables (see #480, #533), it still can't detect unused compound assignments (+=, *= etc.)
Minimal complete verifiable example (MCVE):
main() {
new x = 0;
x += 2; // no warning(s), although the modified value is unused
}
Redundant ++ and -- operations (in both pre- and post- forms) too go completely undetected:
main() {
new x = 0;
return x++; // no warning(s), although post-increment on a local variable is redundant in return expression
}
While covering such cases with warning 204 ("symbol is assigned a value that is never used") could do, I think making a separate warning for this - something like "variable has its value modified but never used" - would be better, especially for operators ++ and --, where the new warning would be much more descriptive and intuitive.
Workspace Information:
Compiler version: 3.10.10
Command line arguments provided (or sampctl version):
Issue description:
Although the compiler became much better at detecting unused assignments to variables (see #480, #533), it still can't detect unused compound assignments (
+=
,*=
etc.)Minimal complete verifiable example (MCVE):
Redundant
++
and--
operations (in both pre- and post- forms) too go completely undetected:While covering such cases with warning 204 ("
symbol is assigned a value that is never used
") could do, I think making a separate warning for this - something like "variable has its value modified but never used
" - would be better, especially for operators++
and--
, where the new warning would be much more descriptive and intuitive.Workspace Information: