/* * 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{ try { throw RuntimeException() } catch (e: RuntimeException) { result = -1 } result } return result } fun test11() : Int { val inlineX = My(111) val res = inlineX.perform{ try { throw RuntimeException() } catch (e: RuntimeException) { -1 } } return res } fun test2() : Int { try { val inlineX = My(111) var result = 0 val res = inlineX.perform{ 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" }