rest_element_in_map_pattern 진단: 맵 패턴에는 rest 패턴을 쓸 수 없어요

rest_element_in_map_pattern 진단: 맵 패턴에는 rest 패턴을 쓸 수 없어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. rest_element_in_map_pattern맵 패턴(map pattern) 안에 rest 패턴(...)을 넣었을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 맵 패턴은 원래 동작 방식이 달라서, rest 패턴이 필요 없는 경우예요.

출처: rest_element_in_map_pattern

본문

설명

분석기는 맵 패턴이 rest 패턴을 포함할 때 이 진단을 만들어요. 맵 패턴은 패턴에 명시적으로 나온 키가 일치하기만 하면, 그보다 더 많은 키를 가진 맵과도 매칭되도록 설계되어 있어요. 그래서 rest 패턴이 불필요해요.

예시

다음 코드는 맵 패턴이 rest 패턴을 포함하기 때문에 이 진단을 만들어요.

void f(Map<int, String> x) {
  if (x case {0: _, ...}) {}
}

흔한 해결 방법

rest 패턴을 제거해요.

void f(Map<int, String> x) {
  if (x case {0: _}) {}
}

더 알아보기