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()
}