quick-lint-js icon indicating copy to clipboard operation
quick-lint-js copied to clipboard

feat(fe): add warning for 'x==y;' statement

Open CoderMuffin opened this issue 10 months ago • 1 comments

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 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.

CoderMuffin avatar Apr 28 '24 13:04 CoderMuffin