extension_conflicting_static_and_instance 진단: 확장에 같은 이름의 정적·인스턴스 멤버를 둘 수 없어요
extension_conflicting_static_and_instance 진단: 확장에 같은 이름의 정적·인스턴스 멤버를 둘 수 없어요
분석기가 내보내는 진단에는 이름이 있어요. extension_conflicting_static_and_instance는 한 확장 선언 안에 같은 이름을 가진 인스턴스 멤버와 정적 멤버가 모두 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 이 둘은 같은 이름을 가질 수 없어요.
본문
설명
분석기는 확장 선언 안에 같은 이름을 가진 인스턴스 멤버와 정적 멤버가 모두 포함되어 있을 때 이 진단을 만들어요. 확장 본문 안에서 이름을 한정하지 않고(qualify하지 않고) 사용할 때 어느 멤버를 가리키는지가 불분명해지기 때문에, 인스턴스 멤버와 정적 멤버는 같은 이름을 가질 수 없어요.
예시
다음 코드는 이름 a가 서로 다른 두 멤버에 쓰이고 있기 때문에 이 진단을 만들어요.
extension E on Object {
int get a => 0;
static int a() => 0;
}
흔한 해결 방법
두 멤버 중 하나의 이름을 바꾸거나 제거하면 돼요.
extension E on Object {
int get a => 0;
static int b() => 0;
}