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() {}
}