invariant_booleans 
条件は、true または false に無条件に評価されるべきではありません。
詳細
#注意: このルールは Dart 3.0.0 で削除され、機能しなくなりました。
コンパイル時に推論できる条件や、同じ条件を複数回テストすることは避けてください。
false 以外になり得ない条件を使用する条件付きステートメントは、コードブロックを機能しなくする効果があります。条件が true 以外になり得ない場合、その条件付きステートメントは完全に冗長であり、コードの可読性を低下させます。プログラマーの意図とコードが一致していない可能性が非常に高いです。条件を削除するか、常に true または false に評価されず、冗長なテストを実行しないように更新する必要があります。このルールは、linting 対象と競合するテストについてヒントを提供します。
悪い例
dart
// foo can't be both equal and not equal to bar in the same expression
if(foo == bar && something && foo != bar) {...}悪い例
dart
void compute(int foo) {
  if (foo == 4) {
    doSomething();
    // we know foo is equal to 4 at this point, so the next condition is always false
    if (foo > 4) {...}
    ...
  }
  ...
}悪い例
dart
void compute(bool foo) {
  if (foo) {
    return;
  }
  doSomething();
  // foo is always false here
  if (foo){...}
  ...
}良い例
dart
void nestedOK() {
  if (foo == bar) {
    foo = baz;
    if (foo != bar) {...}
  }
}良い例
dart
void nestedOk2() {
  if (foo == bar) {
    return;
  }
  foo = baz;
  if (foo == bar) {...} // OK
}良い例
dart
void nestedOk5() {
  if (foo != null) {
    if (bar != null) {
      return;
    }
  }
  if (bar != null) {...} // OK
}有効にする
#invariant_booleans ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に invariant_booleans を追加してください。
analysis_options.yaml
yaml
linter:
  rules:
    - invariant_booleans代わりに YAML マップ構文を使用して linter ルールを構成している場合は、linter > rules の下に invariant_booleans: true を追加してください。
analysis_options.yaml
yaml
linter:
  rules:
    invariant_booleans: true