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 <anonymous>(): R|kotlin/Unit| <inline=Unknown>  {
                    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<kotlin/Unit>| = ::R|/A.foo|
            }
        }

    }
