FILE: assignToBoundSmartcastedVariable.kt
    public abstract interface A : R|kotlin/Any| {
    }
    public abstract interface B : R|kotlin/Any| {
        public abstract fun fooB(x: R|kotlin/Int|): R|kotlin/String|

    }
    public final class Foo : R|kotlin/Any| {
        public constructor(): R|Foo| {
            super<R|kotlin/Any|>()
        }

    }
    public final fun test(ab: R|A|): R|kotlin/Unit| {
        when () {
            (R|<local>/ab| is R|B|) ->  {
                lvar z: R|it(B & A)| = R|/id|<R|it(B & A)|>(R|<local>/ab|)
                R|<local>/z| = R|/Foo.Foo|()
                R|<local>/z|.R|/B.fooB|(Int(1))
            }
        }

    }
