quick-lint-js
quick-lint-js copied to clipboard
feat(fe): add warning for 'x==y;' statement
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.