duplicate_variable_pattern 진단: 패턴에서 변수를 두 번 선언할 때

duplicate_variable_pattern 진단: 패턴에서 변수를 두 번 선언할 때

Dart 분석기가 만들어 내는 duplicate_variable_pattern 진단에 대한 설명이에요. 논리곱(logical-and) 패턴의 한 분기에서, 같은 패턴의 앞선 분기에서 이미 선언된 변수를 또 선언할 때 분석기가 알려주는 컴파일 타임 진단이에요.

출처: duplicate_variable_pattern

본문

설명

분석기는 논리곱 패턴의 한 분기가, 같은 패턴의 앞선 분기에서 이미 선언된 변수를 선언할 때 이 진단을 만들어요.

예시

다음 코드는 변수 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);
  }
}

더 알아보기