// WITH_STDLIB // TARGET_BACKEND: JVM // FILE: inline.kt package test import kotlin.coroutines.* import kotlin.coroutines.intrinsics.* fun runBlocking(c: suspend () -> Unit) { c.startCoroutine(Continuation(EmptyCoroutineContext){ it.getOrThrow() }) } inline fun foo(noinline block: (String) -> Unit) = runBlocking { runCatching { runBlocking { var c: Continuation? = null suspendCoroutineUninterceptedOrReturn { c = it; Unit } block(c!!.toString()) } } Unit } // FILE: test.kt import test.* fun box(): String { var res = "FAIL" foo { res = it } return if (res.contains(".invokeSuspend(inline.kt:")) "OK" else res }