Having all branches of a when
or if
chain with the same implementation indicates a problem.
In the following code:
if (b == 0) { // Noncompliant
doOneMoreThing()
} else {
doOneMoreThing()
}
when (i) { // Noncompliant
1 -> doSomething()
2 -> doSomething()
3 -> doSomething()
else -> doSomething()
}
Either there is a copy-paste error that needs fixing or an unnecessary when
or if
chain that needs removing.
Exceptions
This rule does not apply to if
chains without else
, nor to when
without an else
clause.
if (b == 0) {
doOneMoreThing()
} else if (b == 1) {
doOneMoreThing()
}