Skip to main content

avoid-collapsible-if

added in: 1.1.0
🛠

Warns when multiple nested if statements can be merged into one.

Example

❌ Bad:

void main () {
int value1 = 1;
int value2 = 2;

if (value1 == 1) {
// LINT
if (value2 == 2) {
return;
}
}

if (value1 == 1 && value2 == 3) {
// LINT
if (value2 == 2) {
return;
}
}

if (value1 == 1 || value2 == 3) {
// LINT
if (value2 == 2) {
return;
}
}

if (value1 == 1 || value2 == 3) {
// LINT
if (value2 == 2 || value1 == 4) {
return;
}
}

// LINT
if (value == 1) if (value2 == 2) return;
}

✅ Good:

void main () {
int value1 = 1;
int value2 = 2;

if (value1 == 1 && value2 == 2) {
return;
}

if (value1 == 1 && value2 == 3 && value2 == 2) {
return;
}

if ((value1 == 1 || value2 == 3) && value2 == 2) {
return;
}

if ((value1 == 1 || value2 == 3) && (value2 == 2 || value1 == 4)) {
return;
}

if (value == 1 && value2 == 2) return;
}