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

redeclare_on_non_redeclaring_member

{0} は、スーパ​ーインターフェイスで宣言された {0} を再宣言しません。

説明

#

拡張型 (extension type) のメンバーに @redeclare アノテーションが付けられているが、実装されたインターフェイスに同じ名前のメンバーがない場合に、アナライザーはこの診断を生成します。

#

以下のコードは、拡張型 E によって宣言されたメンバー n@redeclare でアノテーションされているが、C には n という名前のメンバーがないため、この診断を生成します。

dart
import 'package:meta/meta.dart';

class C {
  void m() {}
}

extension type E(C c) implements C {
  @redeclare
  void n() {}
}

一般的な修正

#

アノテーションされたメンバーが正しい名前を持っている場合は、アノテーションを削除してください。

dart
class C {
  void m() {}
}

extension type E(C c) implements C {
  void n() {}
}

アノテーションされたメンバーが実装されたインターフェイスのメンバーを置き換えることになっている場合は、置き換えられるメンバーと一致するようにアノテーションされたメンバーの名前を変更してください。

dart
import 'package:meta/meta.dart';

class C {
  void m() {}
}

extension type E(C c) implements C {
  @redeclare
  void m() {}
}