invariant_booleans
条件が常にtrue
またはfalse
と評価されるべきではありません。
このルールは、最新の Dart リリースで削除されました。
詳細
#注:このルールは Dart 3.0.0 で削除されました。機能しなくなっています。
コンパイル時に推論できる条件や、同じ条件を 2 回テストすることは避けてください。
false
以外にはなりえない条件を使用する条件文は、コードブロックを非機能的にする効果があります。条件がtrue
以外にはなりえない場合、条件文は完全に冗長であり、コードの可読性を低下させます。コードがプログラマの意図と一致しない可能性が非常に高いです。条件を削除するか、常にtrue
またはfalse
と評価されず、冗長なテストを実行しないように更新する必要があります。このルールは、リントされたものと競合するテストを示唆します。
悪い例
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
特に明記されていない限り、このサイトのドキュメントは Dart 3.5.3 を反映しています。ページ最終更新日: 2024-07-03 ソースを表示 または 問題を報告する。