mixin_class_declares_non_trivial_generative_constructor 진단: mixin class는 자명하지 않은 생성자를 선언할 수 없어요
mixin_class_declares_non_trivial_generative_constructor 진단: mixin class는 자명하지 않은 생성자를 선언할 수 없어요
분석기가 내보내는 진단에는 이름이 있어요. mixin_class_declares_non_trivial_generative_constructor는 mixin class가 자명하지 않은(non-trivial) 생성자(generative constructor)를 선언할 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 자명한(trivial) 생성자는 허용되지만, 매개변수나 본문, 초기화식이 있는 자명하지 않은 생성자는 허용되지 않아요.
본문
설명
분석기는 mixin class가 자명하지 않은 생성자를 선언하면 이 진단을 만들어요. 자명한 생성자는 허용되지만, 매개변수나 본문, 초기화식이 있는 자명하지 않은 생성자는 허용되지 않아요.
예시
다음 코드는 mixin class A가 초기화식을 가진 생성자를 정의하고 있어서 이 진단이 나와요.
mixin class A {
A() : assert(true);
}
흔한 해결 방법
생성자의 초기화식이나 본문, 매개변수를 제거해서 자명하게 만들 수 있다면, 그렇게 해 줘요.
mixin class A {
A(); // Trivial constructor
}
생성자를 자명하게 만들 수 없다면, mixin class를 일반 class로 바꿔서 extends 나 implements 하거나, mixin 기능을 분리해 줘요.
class A {
A() : assert(true);
}
// 동작을 섞어 넣기 위한 별도의 mixin
mixin class AM {}