extension_conflicting_static_and_instance 진단: 확장에 같은 이름의 정적·인스턴스 멤버를 둘 수 없어요

extension_conflicting_static_and_instance 진단: 확장에 같은 이름의 정적·인스턴스 멤버를 둘 수 없어요

분석기가 내보내는 진단에는 이름이 있어요. extension_conflicting_static_and_instance한 확장 선언 안에 같은 이름을 가진 인스턴스 멤버와 정적 멤버가 모두 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 이 둘은 같은 이름을 가질 수 없어요.

출처: extension_conflicting_static_and_instance

본문

설명

분석기는 확장 선언 안에 같은 이름을 가진 인스턴스 멤버와 정적 멤버가 모두 포함되어 있을 때 이 진단을 만들어요. 확장 본문 안에서 이름을 한정하지 않고(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;
}

더 알아보기