[K/N] Make exception handling in initializers more consistent with jvm

^KT-57091
This commit is contained in:
Pavel Kunyavskiy
2023-03-03 17:54:48 +01:00
committed by Space Team
parent 0506d39d8a
commit dc2e072af2
29 changed files with 315 additions and 164 deletions
@@ -0,0 +1,33 @@
// TARGET_BACKEND: NATIVE
// IGNORE_BACKEND: NATIVE_WITH_LEGACY_MM
// FILE: lib.kt
import kotlin.native.concurrent.*
@ThreadLocal
val x: String = computeX()
fun computeX(): String = error("1")
@ThreadLocal
val y: String = computeY()
fun computeY(): String = "2"
// FILE: main.kt
fun box() : String {
try {
x
return "FAIL 1"
} catch(t: Error) {
val cause = t.cause
if (cause !is IllegalStateException) return "FAIL 2"
if (cause.message != "1") return "FAIL 3"
}
try {
y
return "FAIL 4"
} catch(t: Error) {
if (t.cause != null) return "FAIL 5"
}
return "OK"
}