blob: b4caa9d54552fa6b605f827d7f0a44c25f9dac6c [file]
// ISSUE: KT-77008
interface I {
fun func(): String
}
class A : I {
override fun func(): String = "OK"
}
class B : I {
override fun func(): String ="Fail B"
}
fun <T> materialize(): T {
return A() as T
}
class MyThrowable : Throwable("")
fun box(): String {
val i: I
// K1: OK
// K2: Fails in Runtime with "class A cannot be cast to class B"
i = try {
materialize()
} catch(e: MyThrowable) {
B()
}
return i.func()
}