when branches and some expressions that are statically known to fail always.
Examples:
fun process(x: Int?) {
val isNull = x == null
if (!isNull) {
if (x != null) {} // condition is always true
require(x!! < 0 && x > 10) // condition is always false
} else {
println(x!!) // !! operator will always fail
}
}
fun process(v: Any) {
when(v) {
is CharSequence -> println(v as Int) // cast will always fail
is String -> println(v) // branch is unreachable
}
}
Uncheck the "Warn when constant is stored in variable" option to avoid reporting of variables having constant values not in conditions.
New in 2021.3