Constant conditions
Reports non-trivial conditions and values that are statically known to be always true, false, null or zero. While sometimes intended, often this is a sign of logical error in the program. Additionally, reports never reachable 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
Inspection options
Option | Type | Default |
---|---|---|
Warn when constant is stored in variable | Checkbox | true |
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Kotlin, @snapshot@ |
Last modified: 13 July 2023