Skip to main content

avoid-conditions-with-boolean-literals

added in: 1.16.0

Warns then a binary expression has a boolean constant that either makes the resulting value always the same or does not affect it.

Example

❌ Bad:

void fn() {
final someSet = {1, 2, 3};

final value = someSet.contains(1) && false; // LINT
final value = someSet.contains(1) && true; // LINT
final value = someSet.contains(1) || true; // LINT
final value = someSet.contains(1) || false; // LINT
}

✅ Good:

void fn() {
final someSet = {1, 2, 3};

final value = someSet.contains(1);
final value = someSet.contains(1) && _someOtherFlag;
}