| // IGNORE_BACKEND: WASM | |
| fun <T> myRun(action: () -> T): T = action() | |
| fun foo(): String = "foo" | |
| fun <K> materialize(): K { | |
| result += "K" | |
| return "str" as K | |
| } | |
| var result = "fail" | |
| fun test1(n: Number, b: Boolean) { | |
| n.let { | |
| if (b) return@let | |
| myRun { | |
| result = "O" | |
| foo() | |
| } | |
| } | |
| } | |
| fun test2(n: Number, b: Boolean) { | |
| n.let { | |
| if (b) return@let | |
| materialize() | |
| } | |
| } | |
| fun box(): String { | |
| test1(42, false) | |
| test2(42, false) | |
| return result | |
| } |