blob: 00157f24f0e509914236c88683a963ec6ad7b100 [file]
// FREE_COMPILER_ARGS: -Xbinary=genericSafeCasts=true
// WITH_STDLIB
// KT-65402
// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6
// KT-65403
// IGNORE_BACKEND: WASM
private fun <T> some(): T =
Some1() as T
private class Some1
private class Some2(private val s: String) {
fun foo(): String = "Some2: $s"
}
fun box(): String {
val some2 = try {
some<Some2>()
} catch(cce: ClassCastException) {
val message = cce.toString()
return if (Regex(".*Some1 cannot be cast to .*Some2.*").matches(message))
"OK"
else
message
} catch (t: Throwable) {
return t.toString()
}
return some2.foo()
}