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

unnecessary_no_such_method

'noSuchMethod' の宣言が不要です。

説明

#

noSuchMethod が宣言されており、その宣言がオーバーライドされた宣言のみを呼び出し、かつオーバーライドされた宣言がObject の宣言ではない場合に、アナライザーはこの診断を生成します。

ObjectnoSuchMethod の実装をオーバーライドすること(実装が何をするかに関わらず)は、アナライザーに、そのクラスで実装されていない継承された抽象メソッドをフラグ付けすべきではないことを示します。これは、オーバーライドする実装がスーパークラスから継承されている場合でも機能するため、サブクラスで再度宣言する価値はありません。

#

以下のコードは、AnoSuchMethod の宣言が BnoSuchMethod の宣言を不要にするため、この診断を生成します。

dart
class A {
  @override
  dynamic noSuchMethod(x) => super.noSuchMethod(x);
}
class B extends A {
  @override
  dynamic noSuchMethod(y) {
    return super.noSuchMethod(y);
  }
}

一般的な修正

#

不要な宣言を削除してください。

dart
class A {
  @override
  dynamic noSuchMethod(x) => super.noSuchMethod(x);
}
class B extends A {}