assert_in_redirecting_constructor
assert_in_redirecting_constructor
Dart 애널라이저가 생성하는 assert_in_redirecting_constructor 진단에 대한 설명이에요.
출처: 원문
본문
리다이렉팅 생성자(redirecting constructor)는 assert 초기화를 가질 수 없어요.
설명
애널라이저는 리다이렉팅 생성자(같은 클래스의 다른 생성자로 리다이렉트하는 생성자)의 초기화 리스트에 assert가 있을 때 이 진단을 생성해요.
예시
아래 코드는 이름 없는 생성자가 리다이렉팅 생성자이면서 초기화 리스트에 assert를 가지기 때문에 이 진단을 만들어요.
class C {
C(int x) : assert(x > 0), this.name();
C.name();
}
일반적인 수정 방법
assert가 필요하지 않다면 제거해요.
class C {
C(int x) : this.name();
C.name();
}
assert가 필요하다면 생성자를 팩토리 생성자로 바꿔요.
class C {
factory C(int x) {
assert(x > 0);
return C.name();
}
C.name();
}
더 알아보기
생성자와 리다이렉팅 생성자, 팩토리 생성자에 대한 더 자세한 내용은 Dart 언어 문서를 참고해요.