37 lines
1.2 KiB
Kotlin
Vendored
37 lines
1.2 KiB
Kotlin
Vendored
// IGNORE_BACKEND: JS_IR
|
|
// EXPECTED_REACHABLE_NODES: 1298
|
|
package foo
|
|
|
|
class MyException(m: String? = null): Exception(m)
|
|
class MyException2(m: String? = null): Throwable(m)
|
|
// TODO: add direct inheritors of Throwable:
|
|
// - with cause only, in the primary constructor
|
|
|
|
fun check(e: Throwable, expectedString: String) {
|
|
try {
|
|
throw e
|
|
}
|
|
catch (e: Throwable) {
|
|
assertEquals(expectedString, e.toString())
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
check(Throwable(), "Throwable: null")
|
|
check(Throwable("ccc"), "Throwable: ccc")
|
|
check(Throwable(Throwable("ddd")), "Throwable: Throwable: ddd")
|
|
check(Exception(), "Exception: null")
|
|
check(Exception("bbb"), "Exception: bbb")
|
|
check(Exception(Exception("ccc")), "Exception: Exception: ccc")
|
|
check(AssertionError(), "AssertionError: null")
|
|
check(AssertionError(null), "AssertionError: null")
|
|
check(AssertionError("bbb"), "AssertionError: bbb")
|
|
check(AssertionError(Exception("ccc")), "AssertionError: Exception: ccc")
|
|
check(MyException(), "MyException: null")
|
|
check(MyException("aaa"), "MyException: aaa")
|
|
check(MyException2(), "MyException2: null")
|
|
check(MyException2("aaa"), "MyException2: aaa")
|
|
|
|
return "OK"
|
|
}
|