EN_raw_literal_only_boolean_expressions
-
Toolschevron_right -
Diagnosticschevron_right -
literal_only_boolean_expressions literal_only_boolean_expressions
Details about the 'literal_only_boolean_expressions' diagnostic produced by the Dart analyzer.
more_vert
-
copyCopy link -
bug_reportReport issue toggle_on Lint rule
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`:
dart
void f() {
if (true) {
print('true');
}
}
content_copy
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`:
dart
void g(int i) {
if (1 == 0 || 3 > 4) {
print('false');
}
}
content_copy
Common fixes
#
If the condition is wrong, then correct the condition so that it's value
can't be known at compile time:
dart
void g(int i) {
if (i == 0 || i > 4) {
print('false');
}
}
content_copy
If the condition is correct, then simplify the code to not evaluate the
condition:
dart
void f() {
print('true');
}
content_copy
Was this page's content helpful?
thumb_up
thumb_down
Unless stated otherwise, the documentation on this site reflects Dart 3.13.3. Report an issue.