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