unnecessary_null_aware_assignments 진단: `??=` 오른쪽에 넣는 쓸데없는 `null`

unnecessary_null_aware_assignments 진단: ??= 오른쪽에 넣는 쓸데없는 null

널 인지 할당(??=)의 오른쪽에 null 리터럴을 쓰는 것은 아무 의미도 없다는 것을 분석기가 알려주는 진단이에요. 왼쪽 값이 이미 null이면 결과가 달라지지 않으니까요.

출처: unnecessary_null_aware_assignments

본문

설명

분석기는 널 인지 할당의 오른쪽이 null 리터럴일 때 이 진단을 만들어요. 왼쪽이 이미 null이라면 null을 다시 넣어도 값이 바뀌지 않기 때문이에요.

예시

아래 코드는 s가 이미 null일 때 nulls에 할당하는 데 널 인지 연산자를 쓰고 있어서 이 진단을 만들어요.

void f(String? s) {
  s ??= null;
}

흔한 해결 방법

왼쪽 피연산자에 널이 아닌 값을 할당해야 한다면, 오른쪽을 바꿔요.

void f(String? s) {
  s ??= '';
}

왼쪽 피연산자에 널이 아닌 값을 넣을 게 없다면, 할당 자체를 제거해요.

void f(String? s) {}

더 알아보기