when 分岐と、常に失敗すると静的に分かっている一部の式を報告します。
例:
fun process(x: Int?) {
val isNull = x == null
if (!isNull) {
if (x != null) {} // 条件は常に true です
require(x!! < 0 && x > 10) // 条件は常に false です
} else {
println(x!!) // !! 演算子は常に失敗します
}
}
fun process(v: Any) {
when(v) {
is CharSequence -> println(v as Int) // キャストは常に失敗します
is String -> println(v) // 分岐は到達不能です
}
}
条件にない定数値を持つ変数の報告を避けるには、「定数が変数に保管された場合に警告する」オプションのチェックを解除します。
2021.3 の新機能です