FILE: elvis.kt public abstract interface A : R|kotlin/Any| { public abstract fun foo(): R|kotlin/Unit| public abstract val b: R|kotlin/Boolean| public get(): R|kotlin/Boolean| } public final fun test_1(x: R|A?|): R|kotlin/Unit| { when () { when (lval : R|kotlin/Boolean?| = R|/x|?.R|/A.b|) { ==($subj$, Null(null)) -> { ^test_1 Unit } else -> { R|/| } } -> { R|/x|.R|/A.foo|() } } } public final fun test2(a: R|kotlin/Any?|, b: R|kotlin/Any?|): R|kotlin/String| { when () { (R|/b| !is R|kotlin/String|) -> { ^test2 String() } } when () { (R|/a| !is R|kotlin/String?|) -> { ^test2 String() } } ^test2 when (lval : R|kotlin/String?| = R|/a|) { ==($subj$, Null(null)) -> { R|/b| } else -> { R|/| } } }