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

unnecessary_overrides

安定版
コア
修正が利用可能です

同じパラメータでスーパークラスのメソッド呼び出しを行うためのメソッドをオーバーライドしないでください。

詳細

#

しないでください、同じパラメータでスーパークラスのメソッド呼び出しを行うためのメソッドをオーバーライドすること。

悪い例

dart
class A extends B {
  @override
  void foo() {
    super.foo();
  }
}

良い例

dart
class A extends B {
  @override
  void foo() {
    doSomethingElse();
  }
}

以下の場合、メンバーをオーバーライドすることは有効です

  • 型(戻り値の型またはパラメータの型)がスーパークラスのメンバーとまったく同じではない場合、
  • パラメータのいずれかにcovariantキーワードが追加されている場合、
  • メンバーにドキュメントコメントが存在する場合、
  • メンバーに@override以外の注釈が付いている場合、
  • メンバーに@protectedの注釈が付いておらず、スーパークラスのメンバーに付いている場合。

noSuchMethodは特別なメソッドであり、このルールではチェックされません。

有効にする

#

unnecessary_overridesルールを有効にするには、analysis_options.yamlファイルのlinter > rulesの下にunnecessary_overridesを追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_overrides

代わりにYAMLマップ構文を使用してリンタールールを設定している場合は、linter > rulesの下にunnecessary_overrides: trueを追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_overrides: true