useSimplifiedLogicExpression (since v0.7.0)
This rule is recommended by Rome.
Discard redundant terms from logical expressions.
Examples
Invalid
const boolExp = true;
const r = true && boolExp;
complexity/useSimplifiedLogicExpression.js:2:11 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━
✖ Logical expression contains unnecessary complexity.
1 │ const boolExp = true;
> 2 │ const r = true && boolExp;
│ ^^^^^^^^^^^^^^^
3 │
ℹ Suggested fix: Discard redundant terms from the logical expression.
2 │ const·r·=·true·&&·boolExp;
│ --------
const boolExp2 = true;
const r2 = boolExp || true;
complexity/useSimplifiedLogicExpression.js:2:12 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━
✖ Logical expression contains unnecessary complexity.
1 │ const boolExp2 = true;
> 2 │ const r2 = boolExp || true;
│ ^^^^^^^^^^^^^^^
3 │
ℹ Suggested fix: Discard redundant terms from the logical expression.
2 │ const·r2·=·boolExp·||·true;
│ -----------
const nonNullExp = 123;
const r3 = null ?? nonNullExp;
complexity/useSimplifiedLogicExpression.js:2:12 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━
✖ Logical expression contains unnecessary complexity.
1 │ const nonNullExp = 123;
> 2 │ const r3 = null ?? nonNullExp;
│ ^^^^^^^^^^^^^^^^^^
3 │
ℹ Suggested fix: Discard redundant terms from the logical expression.
2 │ const·r3·=·null·??·nonNullExp;
│ --------
const boolExpr1 = true;
const boolExpr2 = false;
const r4 = !boolExpr1 || !boolExpr2;
complexity/useSimplifiedLogicExpression.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 │
ℹ Suggested 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 │
Valid
const boolExpr3 = true;
const boolExpr4 = false;
const r5 = !(boolExpr1 && boolExpr2);
const boolExpr5 = true;
const boolExpr6 = false;