org.sonar.l10n.javascript.rules.javascript.S3923.html Maven / Gradle / Ivy
Having all branches in a switch
or if
chain with the same implementation is an error. Either a copy-paste error was made
and something different should be executed, or there shouldn’t be a switch
/if
chain at all.
Noncompliant Code Example
if (b == 0) { // Noncompliant
doOneMoreThing();
}
else {
doOneMoreThing();
}
let a = (b == 0) ? getValue() : getValue(); // Noncompliant
switch (i) { // Noncompliant
case 1:
doSomething();
break;
case 2:
doSomething();
break;
case 3:
doSomething();
break;
default:
doSomething();
}
Exceptions
This rule does not apply to if
chains without else
-s, or to switch
-es without default
clauses.
if(b == 0) { //no issue, this could have been done on purpose to make the code more readable
doSomething();
} else if(b == 1) {
doSomething();
}