literal_ only_ boolean_ expressions
Details about the 'literal_only_boolean_expressions' diagnostic produced by the Dart analyzer.
The Boolean expression has a constant value.
Description
#
The analyzer produces this diagnostic when the value of the
condition in an if or loop statement is known to
be either always true
or always
false. An exception is made for a
while loop whose condition is the Boolean literal
true.
Examples
#
The following code produces this diagnostic because the
condition will always evaluate to true:
void f() {
if (true) {
print('true');
}
}
The lint will evaluate a subset of expressions that are
composed of constants, so the following code will also produce
this diagnostic because the condition will always evaluate to
false:
void g(int i) {
if (1 == 0 || 3 > 4) {
print('false');
}
}
Common fixes
#If the condition is wrong, then correct the condition so that it's value can't be known at compile time:
void g(int i) {
if (i == 0 || i > 4) {
print('false');
}
}
If the condition is correct, then simplify the code to not evaluate the condition:
void f() {
print('true');
}
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.