// KT-27427 interface A { fun foo() } class B : A { override fun foo() { } } fun test1() { val b = B() (b as A).foo() } fun test2() { val b = getB() (b as A).foo() } fun test3() { val b = getB() b.foo() } fun getB(): B = B() // JVM_TEMPLATES // 1 IFNONNULL // There should be no null checks in the bytecode. // JVM_IR_TEMPLATES // 0 IFNONNULL