Add a new diagnostic E0459 that warns on statements that are expressions and the first operator is either ==, ===, != or !==.
While adding this I had to change several tests (especially ones relating to redundant string case checks) from test_parse_and_visit_statement to test_parse_and_visit_expression, as they were causing false positives. The changes should not affect the tests in any way.
Also, I was thinking that maybe this could be widened (or a second diagnostic could be introduced) for statements that are completely redundant (e.g. x+y;)? If this is implemented expressions that can have side effects like x(), x.a() or x() ? y : z will have to be checked for, as warning on these could advise removal that would incorrectly affect program flow. I would think false positives could also be quite likely.
fixes #1132
Add a new diagnostic E0459 that warns on statements that are expressions and the first operator is either
==
,===
,!=
or!==
.While adding this I had to change several tests (especially ones relating to redundant string case checks) from
test_parse_and_visit_statement
totest_parse_and_visit_expression
, as they were causing false positives. The changes should not affect the tests in any way.Also, I was thinking that maybe this could be widened (or a second diagnostic could be introduced) for statements that are completely redundant (e.g.
x+y;
)? If this is implemented expressions that can have side effects likex()
,x.a()
orx() ? y : z
will have to be checked for, as warning on these could advise removal that would incorrectly affect program flow. I would think false positives could also be quite likely.