enum_mixin_with_instance_variable 진단: 열거형에 적용한 mixin이 인스턴스 변수를 가질 때
enum_mixin_with_instance_variable 진단: 열거형에 적용한 mixin이 인스턴스 변수를 가질 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. enum_mixin_with_instance_variable은 열거형에 적용되는 mixin이 인스턴스 변수를 선언할 때 분석기가 알려주는 컴파일 타임 진단이에요. 열거형에 적용되는 mixin은 인스턴스 변수를 가질 수 없어요.
본문
설명
열거형에 적용되는 mixin이 인스턴스 변수를 하나 이상 선언하면 분석기가 이 진단을 만들어요. 이는 허용되지 않아요. 열거형 값은 상수라서 열거형의 생성자가 mixin의 필드를 초기화할 방법이 없기 때문이에요.
예시
아래 코드는 mixin M이 인스턴스 필드 x를 정의하므로 이 진단이 나와요.
mixin M {
int x = 0;
}
enum E with M { a }
흔한 해결 방법
mixin을 적용해야 한다면, 모든 인스턴스 필드를 getter와 setter 쌍으로 바꾸고 필요하다면 열거형에서 구현해요.
mixin M {
int get x => 0;
}
enum E with M { a }
mixin을 적용할 필요가 없다면, 그것을 제거해요.
enum E { a }