unnecessary_null_comparison 진단: 절대 `null`이 될 수 없는 값과의 비교
unnecessary_null_comparison 진단: 절대 null이 될 수 없는 값과의 비교
==나 !=로 값을 비교할 때 한쪽이 null이고 다른 쪽이 절대 null이 될 수 없는 값이면, 그 비교는 항상 true나 false로 고정되므로 아무 쓸모가 없다는 것을 분석기가 알려주는 진단이에요.
본문
설명
분석기는 == 또는 != 동등 비교에서 한쪽 피연산자가 null이고 다른 쪽이 null이 될 수 없을 때 이 진단을 만들어요. 이런 비교는 항상 true이거나 false로 결정되기 때문에 아무 목적이 없어요.
예시
아래 코드는 x가 절대 null이 될 수 없어서 비교가 항상 true로 평가되기 때문에 이 진단을 만들어요.
void f(int x) {
if (x != null) {
print(x);
}
}
다음 코드는 x가 절대 null이 될 수 없어서 비교가 항상 false로 평가되기 때문에 이 진단을 만들어요.
void f(int x) {
if (x == null) {
throw ArgumentError("x can't be null");
}
}
흔한 해결 방법
다른 쪽 피연산자가 null이 될 수 있어야 한다면, 그 피연산자의 타입을 널 타입으로 바꿔요.
void f(int? x) {
if (x != null) {
print(x);
}
}
다른 쪽 피연산자가 정말 null이 될 수 없다면, 조건 자체를 제거해요.
void f(int x) {
print(x);
}