Such expressions may be the result of automated refactorings and they are unlikely to be what the developer intended to do.
The quick-fix simplifies such expressions.
Example:
void f(int a) {
int x = a - a;
int y = a + 0;
int res = x / x;
}
After the quick-fix is applied:
void f(int a) {
int x = 0;
int y = a;
int res = 1;
}
Note that in rare cases, the suggested replacement might not be completely equivalent to the original code
for all possible inputs. For example, the inspection suggests replacing x / x
with 1
.
However, if x
is zero, the original code throws ArithmeticException
or results in NaN
.
Also, if x
is NaN
, then the result is also NaN
. It's very unlikely that such behavior is intended.