정의되지 않은 enum 상수
정의되지 않은 enum 상수
Dart 분석기가 내보내는 진단 중 하나인 undefined_enum_constant를 살펴볼게요. enum 값의 이름처럼 보이는 식별자를 사용했는데, 그 이름이 정의되어 있지 않거나 현재 스코프에서 보이지 않을 때 이 진단이 나타나요. enum에 상수를 추가하거나, 이미 존재하는 상수 이름으로 바꾸면 해결돼요.
본문
이 진단은 다음과 같은 메시지로 나타나요.
- There's no constant named '{0}' in '{1}'. ('{1}'에는 '{0}'이라는 이름의 상수가 없어요.)
설명
분석기는 enum 값의 이름처럼 보이는 식별자를 만났을 때, 그 이름이 정의되어 있지 않거나 참조되는 스코프에서 보이지 않으면 이 진단을 내보내요.
예시
아래 코드는 E에 c라는 이름의 상수가 정의되어 있지 않기 때문에 이 진단이 발생해요.
enum E { a, b }
var e = E.c;
자주 쓰는 해결 방법
상수를 정의해야 한다면, enum 선언에 상수를 추가해요.
enum E { a, b, c }
var e = E.c;
상수를 정의하면 안 되는 상황이라면, 이미 존재하는 상수의 이름으로 바꿔요.
enum E { a, b }
var e = E.b;