이전 case에 가려진 switch default

이전 case에 가려진 switch default

switch 문 안의 default 절이 매칭 가능한 모든 값을 앞선 case들이 이미 매칭해서 아무것도 매칭하지 못할 때 이 진단이 발생해요. 필요 없어진 default 절을 정리하는 방법을 함께 살펴볼게요.

출처: unreachable_switch_default

본문

설명

analyzer는 switch 문 안의 default 절이 매칭 가능한 모든 값을 앞선 case가 이미 매칭해서 아무것도 매칭하지 못할 때 이 진단을 내보내요.

예시

다음 코드는 값 E.e1E.e2가 앞선 case들에서 이미 매칭됐기 때문에 진단이 발생해요.

enum E { e1, e2 }

void f(E x) {
  switch (x) {
    case E.e1:
      print('one');
    case E.e2:
      print('two');
    default:
      print('other');
  }
}

일반적인 해결 방법

불필요한 default 절을 제거해요.

enum E { e1, e2 }

void f(E x) {
  switch (x) {
    case E.e1:
      print('one');
    case E.e2:
      print('two');
  }
}

더 알아보기