unnecessary_null_aware_assignments 진단: `??=` 오른쪽에 넣는 쓸데없는 `null`
unnecessary_null_aware_assignments 진단: ??= 오른쪽에 넣는 쓸데없는 null
널 인지 할당(??=)의 오른쪽에 null 리터럴을 쓰는 것은 아무 의미도 없다는 것을 분석기가 알려주는 진단이에요. 왼쪽 값이 이미 null이면 결과가 달라지지 않으니까요.
본문
설명
분석기는 널 인지 할당의 오른쪽이 null 리터럴일 때 이 진단을 만들어요. 왼쪽이 이미 null이라면 null을 다시 넣어도 값이 바뀌지 않기 때문이에요.
예시
아래 코드는 s가 이미 null일 때 null을 s에 할당하는 데 널 인지 연산자를 쓰고 있어서 이 진단을 만들어요.
void f(String? s) {
s ??= null;
}
흔한 해결 방법
왼쪽 피연산자에 널이 아닌 값을 할당해야 한다면, 오른쪽을 바꿔요.
void f(String? s) {
s ??= '';
}
왼쪽 피연산자에 널이 아닌 값을 넣을 게 없다면, 할당 자체를 제거해요.
void f(String? s) {}