널이 아닌 타입 인자 자리에 null을 전달할 때

널이 아닌 타입 인자 자리에 null을 전달할 때

null_argument_to_non_null_type 진단은 널이 아닌 타입 인자(non-nullable type argument)를 쓰는 자리에 null이 들어왔을 때 분석기가 짚어 주는 메시지예요. null을 넘기면 타입 검사는 통과해도 실제로는 런타임 예외가 나는 상황이라서 미리 알려 주는 거죠.

출처: null_argument_to_non_null_type

본문

설명 (Description)

분석기는 nullFuture.value 생성자나 Completer.complete 메서드에 전달될 때 이 진단을 만들어 내요. 특히 그 인스턴스를 만들 때 사용한 타입 인자가 널이 아닌 타입이라면요. 타입 시스템은 이런 제약을 표현해 주지 못하지만, null을 넘기면 런타임에 예외가 발생해요.

예시 (Example)

아래 코드는 타입 인자가 널이 아닌 String인데도 Future.value 생성자에 null을 전달하고 있어서 이 진단이 발생해요.

Future<String> f() {
  return Future.value(null);
}

흔한 해결책 (Common fixes)

널이 아닌 값을 전달하면 돼요.

Future<String> f() {
  return Future.value('');
}

더 알아보기