정의되지 않은 enum 상수

정의되지 않은 enum 상수

Dart 분석기가 내보내는 진단 중 하나인 undefined_enum_constant를 살펴볼게요. enum 값의 이름처럼 보이는 식별자를 사용했는데, 그 이름이 정의되어 있지 않거나 현재 스코프에서 보이지 않을 때 이 진단이 나타나요. enum에 상수를 추가하거나, 이미 존재하는 상수 이름으로 바꾸면 해결돼요.

출처: undefined_enum_constant

본문

이 진단은 다음과 같은 메시지로 나타나요.

  • There's no constant named '{0}' in '{1}'. ('{1}'에는 '{0}'이라는 이름의 상수가 없어요.)

설명

분석기는 enum 값의 이름처럼 보이는 식별자를 만났을 때, 그 이름이 정의되어 있지 않거나 참조되는 스코프에서 보이지 않으면 이 진단을 내보내요.

예시

아래 코드는 Ec라는 이름의 상수가 정의되어 있지 않기 때문에 이 진단이 발생해요.

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;

더 알아보기