Files
kotlin-fork/compiler/testData/diagnostics/tests/controlStructures/catchGenerics.fir.kt
T
2021-02-05 09:22:12 +03:00

27 lines
706 B
Kotlin
Vendored

// JAVAC_EXPECTED_FILE
// See KT-9816, KT-9742
// Not allowed in Java
class ZException<<!GENERIC_THROWABLE_SUBCLASS!>T<!>>(val p: T) : Exception()
class YException<<!GENERIC_THROWABLE_SUBCLASS!>T<!>>(val p: T): java.lang.RuntimeException()
class XException<<!GENERIC_THROWABLE_SUBCLASS!>T<!>>(val p: T): Throwable()
fun bar() {
try {
throw ZException(11)
} catch (e: ZException<*>) {}
}
inline fun <reified E : Exception, R> tryCatch(lazy: () -> R, failure: (E) -> R): R =
try {
lazy()
} catch (<!REIFIED_TYPE_IN_CATCH_CLAUSE!>e: E<!>) {
failure(e)
}
fun <T : Throwable> tryCatch() {
try { } catch (<!TYPE_PARAMETER_IN_CATCH_CLAUSE!>e: T<!>) { }
}