switch에 enum 값에 대한 case가 빠진 경우

switch에 enum 값에 대한 case가 빠진 경우 (missing_enum_constant_in_switch)

enum을 대상으로 하는 switch 문에 enum의 값 중 하나에 대한 case가 없을 때 나오는 진단이에요. 빠진 값마다 case를 추가하거나, 같은 방식으로 처리한다면 default 절을 추가하면 돼요.

출처: Missing case clause for '{0}'.

본문

이 진단은 enum에 대한 switch 문이 enum의 값 중 하나에 대한 옵션을 포함하지 않을 때 분석기가 만들어내요.

주의할 점은 null도 enum의 가능한 값 중 하나라서 반드시 처리해야 한다는 거예요.

예시

아래 코드는 enum 값 e2가 처리되지 않아서 이 진단이 나와요.

enum E { e1, e2 }

void f(E e) {
  switch (e) {
    case E.e1:
      break;
  }
}

해결 방법

누락된 값에 특별한 처리가 필요하다면, 각 값을 위한 case 절을 추가해 주세요.

enum E { e1, e2 }

void f(E e) {
  switch (e) {
    case E.e1:
      break;
    case E.e2:
      break;
  }
}

누락된 값들을 같은 방식으로 처리하고 싶다면, default 절을 추가해 주세요.

enum E { e1, e2 }

void f(E e) {
  switch (e) {
    case E.e1:
      break;
    default:
      break;
  }
}

더 알아보기