그러한 표현식은 자동화된 리팩터링의 결과일 수 있으며 개발자가 의도한 결과가 아닐 가능성이 높습니다.
빠른 수정에서는 그러한 표현식을 단순화합니다.
예:
void f(int a) {
int x = a - a;
int y = a + 0;
int res = x / x;
}
빠른 수정을 적용한 후:
void f(int a) {
int x = 0;
int y = a;
int res = 1;
}
드문 경우, 모든 가능한 입력에 대해 제안된 교체는 원래 코드와 완전히 동등하지 않을 수 있습니다. 예를 들어, 검사는 x / x를 1로 바꿀 것을 제안합니다.
하지만 x가 0인 경우 원래 코드는 ArithmeticException을 던지거나 NaN을 발생시킵니다.
또한 x가 NaN인 경우 결과 또한 NaN입니다. 그러한 동작이 의도되었을 가능성은 매우 낮습니다.