目次

avoid_redundant_argument_values

冗長な引数の値を避けます。

このルールは Dart 2.8 以降で利用可能です。

このルールには、クイックフィックスが利用可能です。

詳細

#

避けるべきこと:対応するパラメーターのデフォルト値と一致する引数を渡す。

メソッドのオーバーライドによってパラメーターのデフォルト値が変更される可能性があるため、引数が一方のデフォルト値と等しくても、もう一方のデフォルト値と等しくない場合があります。たとえば、AB の2つのクラスがあり、BA のサブクラスで、BA で宣言されたメソッドをオーバーライドし、そのメソッドに A の宣言では1つのデフォルト値を持つパラメーターがあり、B の宣言では異なるデフォルト値を持つ場合を考えます。呼び出されたメソッドのターゲットの静的型が B で、B のデフォルト値が引数と一致する場合、引数は省略できます(また、引数の値が異なる場合、lint は報告されません)。ただし、呼び出されたメソッドのターゲットの静的型が A の場合、lint が報告される可能性がありますが、どのメソッドが呼び出されるかを静的に知ることはできないため、報告された lint が誤検出である可能性があります。このようなケースは、// ignore: avoid_redundant_argument_values のようなコメントでインラインで無視できます。

悪い例

dart
void f({bool valWithDefault = true, bool? val}) {
  ...
}

void main() {
  f(valWithDefault: true);
}

良い例

dart
void f({bool valWithDefault = true, bool? val}) {
  ...
}

void main() {
  f(valWithDefault: false);
  f();
}

使用法

#

avoid_redundant_argument_values ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に avoid_redundant_argument_values を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_redundant_argument_values