duplicate_variable_pattern 진단: 패턴에서 변수를 두 번 선언할 때
duplicate_variable_pattern 진단: 패턴에서 변수를 두 번 선언할 때
Dart 분석기가 만들어 내는 duplicate_variable_pattern 진단에 대한 설명이에요. 논리곱(logical-and) 패턴의 한 분기에서, 같은 패턴의 앞선 분기에서 이미 선언된 변수를 또 선언할 때 분석기가 알려주는 컴파일 타임 진단이에요.
본문
설명
분석기는 논리곱 패턴의 한 분기가, 같은 패턴의 앞선 분기에서 이미 선언된 변수를 선언할 때 이 진단을 만들어요.
예시
다음 코드는 변수 a가 논리곱 패턴의 두 분기 모두에서 선언되기 때문에 이 진단을 만들어요.
void f((int, int) r) {
if (r case (var a, 0) && (0, var a)) {
print(a);
}
}
흔한 해결 방법
매칭된 값을 여러 분기에서 모두 담아야 한다면, 변수 이름을 서로 고유하게 바꿔요.
void f((int, int) r) {
if (r case (var a, 0) && (0, var b)) {
print(a + b);
}
}
매칭된 값을 한 분기에서만 담으면 된다면, 한 분기를 제외한 나머지 분기에서 변수 패턴을 제거해요.
void f((int, int) r) {
if (r case (var a, 0) && (0, _)) {
print(a);
}
}