extension_type_declares_member_of_object 진단: 확장 타입이 Object 멤버와 같은 이름의 멤버를 선언할 때

extension_type_declares_member_of_object 진단: 확장 타입이 Object 멤버와 같은 이름의 멤버를 선언할 때

Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_type_declares_member_of_object확장 타입(extension type)의 본문에 Object가 선언한 멤버와 같은 이름의 멤버가 있을 때 분석기가 알려주는 컴파일 타임 진단이에요. 확장 타입은 Object가 선언한 멤버와 같은 이름으로 멤버를 선언할 수 없어요.

출처: extension_type_declares_member_of_object

본문

설명

분석기는 확장 타입 선언의 본문에 Object가 선언한 멤버 중 하나와 같은 이름의 멤버가 있으면 이 진단을 만들어요.

다음 코드는 Object 클래스가 이미 hashCode라는 이름의 멤버를 정의하고 있기 때문에 이 진단이 나와요.

extension type E(int i) {
  int get hashCode => 0;
}

흔한 해결 방법

해당 시맨틱을 가진 멤버가 필요하다면 멤버 이름을 바꿔요.

extension type E(int i) {
  int get myHashCode => 0;
}

해당 시맨틱을 가진 멤버가 필요 없다면 멤버를 삭제하면 돼요.

extension type E(int i) {}

더 알아보기