Files
kotlin-fork/js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.1.kt
T
2014-10-03 14:23:47 +04:00

60 lines
1.2 KiB
Kotlin
Vendored

/*
* Copy of JVM-backend test
* Found at: compiler/testData/codegen/boxInline/tryCatchFinally/tryCatch.1.kt
*/
package foo
fun test1() : Int {
val inlineX = My(111)
var result = 0
val res = inlineX.perform<My, Int>{
try {
throw RuntimeException()
} catch (e: RuntimeException) {
result = -1
}
result
}
return result
}
fun test11() : Int {
val inlineX = My(111)
val res = inlineX.perform<My, Int>{
try {
throw RuntimeException()
} catch (e: RuntimeException) {
-1
}
}
return res
}
fun test2() : Int {
try {
val inlineX = My(111)
var result = 0
val res = inlineX.perform<My, Int>{
try {
throw RuntimeExceptionWithValue("-1")
} catch (e: RuntimeException) {
throw RuntimeExceptionWithValue("-2")
}
}
return result
} catch (e: RuntimeExceptionWithValue) {
return e.value.toInt2()!!
}
}
fun box(): String {
if (test1() != -1) return "test1: ${test1()}"
if (test11() != -1) return "test11: ${test11()}"
if (test2() != -2) return "test2: ${test2()}"
return "OK"
}