duplicate_field_name 진단: 레코드에 같은 이름의 필드가 두 번 있을 때
duplicate_field_name 진단: 레코드에 같은 이름의 필드가 두 번 있을 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. duplicate_field_name은 레코드 리터럴이나 레코드 타입 주석 안에, 같은 리터럴이나 타입 안에서 이미 선언된 필드와 이름이 같은 필드가 있을 때 분석기가 알려주는 컴파일 타임 진단이에요.
본문
설명
분석기는 레코드 리터럴 또는 레코드 타입 주석에, 같은 리터럴이나 타입에서 이전에 선언된 필드와 이름이 같은 필드가 있으면 이 진단을 만들어요.
예시
아래 코드는 레코드 리터럴에 이름이 a인 필드가 두 개 있기 때문에 이 진단을 만들어요.
var r = (a: 1, a: 2);
아래 코드는 레코드 타입 주석에 이름이 a인 필드가 두 개 있는데, 하나는 위치 필드(positional field)이고 다른 하나는 이름 있는 필드(named field)이기 때문에 이 진단을 만들어요.
void f((int a, {int a}) r) {}
흔한 해결 방법
두 필드 중 하나 또는 둘 다 다른 이름으로 바꿔요.
var r = (a: 1, b: 2);