상수 패턴의 표현식은 유효한 상수여야 해요

상수 패턴의 표현식은 유효한 상수여야 해요

상수 패턴에 유효한 상수가 아닌 표현식이 들어갔을 때 분석기가 이 진단을 띄워줘요.

출처: The expression of a constant pattern must be a valid constant

본문

분석기는 상수 패턴에 유효한 상수가 아닌 표현식이 들어갔을 때 이 진단을 만들어요. 상수 패턴은 컴파일 시점에 값이 정해져야 하니, 그 안의 표현식도 상수여야 해요.

다음 코드는 상수 패턴 i가 상수가 아니라서 이 진단이 나와요.

void f(int e, int i) {
  switch (e) {
    case i:
      break;
  }
}

고치는 방법

매치되어야 할 값을 알고 있다면, 표현식을 상수로 바꾸면 돼요.

void f(int e, int i) {
  switch (e) {
    case 0:
      break;
  }
}

매치되어야 할 값을 모른다면, 패턴을 쓰지 않도록 코드를 다시 쓰면 돼요.

void f(int e, int i) {
  if (e == i) {}
}

더 알아보기