| // !LANGUAGE: +InlineClasses |
| // WITH_STDLIB |
| |
| // MODULE: lib |
| // USE_OLD_INLINE_CLASSES_MANGLING_SCHEME |
| // FILE: 1.kt |
| package test |
| |
| inline class IC(val s: String) |
| |
| fun ordinary(s: String, ic: IC): String = s + ic.s |
| |
| suspend fun suspend(s: String, ic: IC): String = s + ic.s |
| |
| // MODULE: main(lib) |
| // FILE: 2.kt |
| import kotlin.coroutines.* |
| import test.* |
| |
| fun builder(c: suspend () -> Unit) { |
| c.startCoroutine(Continuation(EmptyCoroutineContext) { |
| it.getOrThrow() |
| }) |
| } |
| |
| fun box(): String { |
| var res = ordinary("O", IC("K")) |
| if (res != "OK") return "FAIL 1: $res" |
| builder { |
| res = suspend("O", IC("K")) |
| } |
| return res |
| } |