メインコンテンツにスキップ

extension_type_inherited_member_conflict

拡張型 '{0}' は、実装された型から名前 '{1}' を持つ重複したメンバーを複数持っています。

説明

#

この診断は、拡張型が2つ以上の型を実装し、それらの型のうち少なくとも2つが同じ名前のメンバーを宣言している場合にアナライザーによって生成されます。

#

次のコードは、拡張型 CAB の両方を実装しており、両方とも m という名前のメンバーを宣言しているため、この診断を生成します。

dart
class A {
  void m() {}
}

extension type B(A a) {
  void m() {}
}

extension type C(A a) implements A, B {}

一般的な修正

#

拡張型がリストされたすべての型を実装する必要がない場合は、競合するメンバーを導入している型を1つだけ残して削除してください。

dart
class A {
  void m() {}
}

extension type B(A a) {
  void m() {}
}

extension type C(A a) implements A {}

拡張型がリストされたすべての型を実装する必要があり、それらの型でメンバーの名前を変更できる場合は、競合するメンバーに一意の名前を付けてください。

dart
class A {
  void m() {}
}

extension type B(A a) {
  void n() {}
}

extension type C(A a) implements A, B {}