Inspectopedia Help

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