Perform additional checks on catch parameter declaration

KT-8320 It should not be possible to catch a type parameter type
KT-7645 Prohibit default value for `catch`-block parameter
This commit is contained in:
Dmitry Petrov
2017-04-13 13:01:30 +03:00
parent 5ccfbcbe22
commit e0ebaac70c
9 changed files with 52 additions and 10 deletions
@@ -19,3 +19,7 @@ inline fun <reified E : Exception, R> tryCatch(lazy: () -> R, failure: (E) -> R)
} catch (<!REIFIED_TYPE_IN_CATCH_CLAUSE!>e: E<!>) {
failure(e)
}
fun <T : Throwable> tryCatch() {
try { } catch (<!TYPE_PARAMETER_IN_CATCH_CLAUSE!>e: T<!>) { }
}