Why is this an issue?
Having all branches in a when
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 when
/if
chain at all.
Noncompliant code example
if (b == 0) { // Noncompliant
doOneMoreThing()
} else {
doOneMoreThing()
}
when (i) { // Noncompliant
1 -> doSomething()
2 -> doSomething()
3 -> doSomething()
else -> doSomething()
}
Exceptions
This rule does not apply to if
chains without else
-s, or to when
-es without else
clauses.
if (b == 0) {
doOneMoreThing()
} else if (b == 1) {
doOneMoreThing()
}