| // TARGET_BACKEND: NATIVE | |
| // FILE: lib.kt | |
| import kotlin.native.concurrent.* | |
| @ThreadLocal | |
| val x: String = computeX() | |
| fun computeX(): String = error("1") | |
| 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" | |
| } |