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 () { R|/x|?.{ $subj$.R|/A.b| } ?: ^test_1 Unit -> { 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 R|/a| ?: R|/b| }