제네러티브 생성자가 없는 생성자로 리다이렉트

제네러티브 생성자가 없는 생성자로 리다이렉트 (redirect_generative_to_missing_constructor)

이 문서는 Dart 분석기(analyzer)가 내는 redirect_generative_to_missing_constructor 진단(diagnostic)을 설명하는 문서예요. 제네러티브(generative) 생성자가 아직 정의되지 않은 생성자로 리다이렉트할 때 분석기가 알려 줘요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.

출처: redirect_generative_to_missing_constructor

본문

진단 메시지

The constructor '{0}' couldn't be found in '{1}'.

생성자 '{0}'을(를) '{1}'에서 찾을 수 없어요.

설명

분석기는 제네러티브 생성자가 정의되지 않은 생성자로 리다이렉트할 때 이 진단을 만들어 내요. 리다이렉트 대상 생성자가 애초에 존재하지 않으니, 그 생성자를 호출하는 코드는 컴파일될 수 없어요.

예시

다음 코드는 생성자 C.a가 생성자 C.b로 리다이렉트하는데, C.b가 정의되지 않아서 이 진단을 만들어 내요.

class C {
  C.a() : this.b();
}

일반적인 해결 방법

그 생성자가 실제로 호출되어야 한다면, 생성자를 정의해 주세요.

class C {
  C.a() : this.b();
  C.b();
}

만약 그 생성자가 호출될 필요가 없다면, 리다이렉트를 제거하면 돼요.

class C {
  C.a();
}

더 알아보기