rest_element_in_map_pattern 진단: 맵 패턴에는 rest 패턴을 쓸 수 없어요
rest_element_in_map_pattern 진단: 맵 패턴에는 rest 패턴을 쓸 수 없어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. rest_element_in_map_pattern은 맵 패턴(map pattern) 안에 rest 패턴(...)을 넣었을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 맵 패턴은 원래 동작 방식이 달라서, rest 패턴이 필요 없는 경우예요.
본문
설명
분석기는 맵 패턴이 rest 패턴을 포함할 때 이 진단을 만들어요. 맵 패턴은 패턴에 명시적으로 나온 키가 일치하기만 하면, 그보다 더 많은 키를 가진 맵과도 매칭되도록 설계되어 있어요. 그래서 rest 패턴이 불필요해요.
예시
다음 코드는 맵 패턴이 rest 패턴을 포함하기 때문에 이 진단을 만들어요.
void f(Map<int, String> x) {
if (x case {0: _, ...}) {}
}
흔한 해결 방법
rest 패턴을 제거해요.
void f(Map<int, String> x) {
if (x case {0: _}) {}
}