primary 생성자의 필드가 사용되지 않음
primary 생성자의 필드가 사용되지 않음 (unused_field_from_primary_constructor)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 unused_field_from_primary_constructor 진단(diagnostic)에 대해 설명하는 문서예요. 간단히 말하면, primary 생성자(constructor)에서 private 필드(field)를 선언했는데 그 필드를 아무 데서도 읽지 않을 때 분석기가 이 진단을 알려 줘요. 필드에 값을 쓰기만 하고 읽지 않는 상황이 바로 이 진단의 대상이에요.
본문
진단 메시지
The value of the field '{0}' isn't used.
필드 '{0}'의 값이 사용되지 않아요.
설명
분석기는 private 필드가 primary 생성자에서 선언됐는데 그 필드를 아무 데서도 읽지 않을 때 이 진단을 만들어 내요. 필드가 여러 곳에서 쓰이더라도, 읽히지 않는다면 이 진단이 나와요.
예시
다음 코드는 _i 필드가 라이브러리 어디에서도 읽히지 않기 때문에 이 진단을 만들어 내요.
class C(final int _i);
이 예시에서는 final 키워드를 사용했기 때문에 primary 생성자가 필드를 선언해요. (var 키워드를 써도 필드가 선언돼요.)
흔한 해결 방법
매개변수는 여전히 필요하지만 그에 딸린 필드는 필요 없다면, final 또는 var 키워드를 제거하고 매개변수 자리에 와일드카드(wildcard)를 사용해요.
class C(int _);
매개변수도 필요 없다면 매개변수를 제거해요. 그러면 그에 딸린 필드도 함께 사라져요.
class C();
필드를 사용하려는 의도였다면, 빠져 있는 코드를 추가해요.
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- Dart 3.7 이상에서 도입된 primary 생성자와 와일드카드 변수에 대한 자세한 내용은 Dart 공식 문서를 참고해요.