리다이렉트 대상 생성자가 없어요

리다이렉트 대상 생성자가 없어요 (redirect_to_missing_constructor)

이 문서는 Dart 분석기(analyzer)가 만들어 내는 redirect_to_missing_constructor 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. 생성자가 존재하지 않는 생성자로 리다이렉트할 때 분석기가 이 진단을 알려 줘요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.

출처: redirect_to_missing_constructor

본문

진단 메시지

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

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

설명

분석기는 생성자가 존재하지 않는 생성자로 리다이렉트할 때 이 진단을 만들어 내요. 리다이렉트 대상으로 지정한 이름에 해당하는 생성자가 실제로 정의돼 있지 않다는 뜻이에요.

예시

다음 코드는 A 안의 팩토리 생성자가 B 안에 존재하지 않는 생성자로 리다이렉트하기 때문에 이 진단을 만들어 내요.

class A {
  factory A() = B.name;
}

class B implements A {
  B();
}

일반적인 해결 방법

리다이렉트 대상 생성자가 올바르다면, 해당 생성자를 정의해 주세요.

class A {
  factory A() = B.name;
}

class B implements A {
  B();
  B.name();
}

다른 생성자를 호출해야 한다면, 리다이렉트를 그 생성자로 바꿔 주세요.

class A {
  factory A() = B;
}

class B implements A {
  B();
}

더 알아보기