unnecessary_null_comparison
オペランドが 'null' になることはないので、条件は常に 'false' です。
オペランドが 'null' になることはないので、条件は常に 'true' です。
オペランドは 'null' でなければならないため、条件は常に 'false' です。
オペランドは 'null' でなければならないため、条件は常に 'true' です。
説明
#アナライザーは、一方のオペランドが null で、もう一方のオペランドが null になれないような等価比較(== または !=)を見つけた場合に、この診断を生成します。このような比較は常に true または false のいずれかになるため、意味がありません。
例
#以下のコードは、x が決して null にならないため、比較が常に true と評価されるという理由で、この診断を生成します。
dart
void f(int x) {
if (x != null) {
print(x);
}
}以下のコードは、x が決して null にならないため、比較が常に false と評価されるという理由で、この診断を生成します。
dart
void f(int x) {
if (x == null) {
throw ArgumentError("x can't be null");
}
}一般的な修正
#もう一方のオペランドが null になる可能性がある場合は、オペランドの型を変更してください。
dart
void f(int? x) {
if (x != null) {
print(x);
}
}もう一方のオペランドが実際に null にならない場合は、条件を削除してください。
dart
void f(int x) {
print(x);
}