상수 패턴의 표현식은 유효한 상수여야 해요
상수 패턴의 표현식은 유효한 상수여야 해요
상수 패턴에 유효한 상수가 아닌 표현식이 들어갔을 때 분석기가 이 진단을 띄워줘요.
출처: 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) {}
}