FILE: smartcastOnImplicitReceiverOfCallableReference.kt public abstract interface A : R|kotlin/Any| { public abstract fun foo(): R|kotlin/Unit| } public final fun R|kotlin/Any|.test_1(): R|kotlin/Unit| { when (this@R|/test_1|) { ($subj$ is R|A|) -> { this@R|/test_1|.R|/A.foo|() ::R|/A.foo| } else -> { throw R|java/lang/Exception.Exception|() } } } public final fun R|kotlin/Any|.test_2(): R|kotlin/Unit| { when (this@R|/test_2|) { ($subj$ is R|A|) -> { this@R|/test_2|.R|/A.foo|() fun (): R|kotlin/Unit| { this@R|/test_2|.R|/A.foo|() } } else -> { } } } public final fun R|kotlin/Any|.test_3(): R|kotlin/Unit| { when () { (this@R|/test_3| is R|A|) -> { lval f: R|kotlin/reflect/KFunction0| = ::R|/A.foo| } } }