Skip to content

useSimplifiedLogicExpression

biome.json
{
"linter": {
"rules": {
"complexity": {
"useSimplifiedLogicExpression": "error"
}
}
}
}

Discard redundant terms from logical expressions.

The rule applies the De Morgan’s Law rule to simplify logical expressions. This means that some simplified expressions that are fixed by the rule might seem less intuitive to read, but they are more efficient to evaluate.

const boolExp = true;
const r = true && boolExp;
code-block.js:2:11 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━

Logical expression contains unnecessary complexity.

1 │ const boolExp = true;
> 2 │ const r = true && boolExp;
^^^^^^^^^^^^^^^
3 │

Safe fix: Discard redundant terms from the logical expression.

2 │ const·r·=·true·&&·boolExp;
--------
const boolExp2 = true;
const r2 = boolExp || true;
code-block.js:2:12 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━

Logical expression contains unnecessary complexity.

1 │ const boolExp2 = true;
> 2 │ const r2 = boolExp || true;
^^^^^^^^^^^^^^^
3 │

Safe fix: Discard redundant terms from the logical expression.

2 │ const·r2·=·boolExp·||·true;
-----------
const nonNullExp = 123;
const r3 = null ?? nonNullExp;
code-block.js:2:12 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━

Logical expression contains unnecessary complexity.

1 │ const nonNullExp = 123;
> 2 │ const r3 = null ?? nonNullExp;
^^^^^^^^^^^^^^^^^^
3 │

Safe fix: Discard redundant terms from the logical expression.

2 │ const·r3·=·null·??·nonNullExp;
--------
const boolExpr1 = true;
const boolExpr2 = false;
const r4 = !boolExpr1 || !boolExpr2;
code-block.js:3:12 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━

Logical expression contains unnecessary complexity.

1 │ const boolExpr1 = true;
2 │ const boolExpr2 = false;
> 3 │ const r4 = !boolExpr1 || !boolExpr2;
^^^^^^^^^^^^^^^^^^^^^^^^
4 │

Safe fix: Reduce the complexity of the logical expression.

1 1 const boolExpr1 = true;
2 2 const boolExpr2 = false;
3 - const·r4·=·!boolExpr1·||·!boolExpr2;
3+ const·r4·=·!(boolExpr1·&&·boolExpr2);
4 4

const boolExpr3 = true;
const boolExpr4 = false;
const r5 = !(boolExpr1 && boolExpr2);
const boolExpr5 = true;
const boolExpr6 = false;