duplicate_rest_element_in_pattern 진단: 리스트/맵 패턴의 rest 요소가 두 개일 때

duplicate_rest_element_in_pattern 진단: 리스트/맵 패턴의 rest 요소가 두 개일 때

Dart 분석기가 만들어 내는 duplicate_rest_element_in_pattern 진단에 대한 설명이에요. 리스트 패턴이나 맵 패턴에 rest 패턴이 두 개 이상 들어갈 때 분석기가 알려주는 컴파일 타임 진단이에요.

출처: duplicate_rest_element_in_pattern

본문

설명

분석기는 리스트 패턴이나 맵 패턴에 rest 패턴이 두 개 이상 있을 때 이 진단을 만들어요. rest 패턴은 다른 하위 패턴이 매칭하지 못한 모든 값을 잡아내기 때문에, 그 이후의 rest 패턴은 잡아낼 값이 남아 있지 않아 불필요해져요.

예시

다음 코드는 리스트 패턴에 rest 패턴이 두 개 있기 때문에 이 진단을 만들어요.

void f(List<int> x) {
  if (x case [0, ..., ...]) {}
}

흔한 해결 방법

rest 패턴을 하나만 남기고 나머지는 모두 제거해요.

void f(List<int> x) {
  if (x case [0, ...]) {}
}

더 알아보기