FILE: booleanElvisBoundSmartcast.kt public final class A : R|kotlin/Any| { public constructor(b: R|kotlin/Boolean|): R|A| { super() } public final val b: R|kotlin/Boolean| = R|/b| public get(): R|kotlin/Boolean| public final fun foo(): R|kotlin/Unit| { } } public final fun test_1(a: R|A?|): R|kotlin/Unit| { when () { R|/a|?.{ $subj$.R|/A.b| } ?: Boolean(false) -> { R|/a|.R|/A.foo|() } else -> { R|/a|.R|/A.foo#|() } } } public final fun test_2(a: R|A?|): R|kotlin/Unit| { when () { R|/a|?.{ $subj$.R|/A.b| } ?: Boolean(true) -> { R|/a|.R|/A.foo#|() } else -> { R|/a|.R|/A.foo|() } } }