Files
kotlin-fork/compiler/testData/codegen/boxInline/suspend/callableReference/simple.kt
T
2021-02-02 17:53:52 +03:00

35 lines
684 B
Kotlin
Vendored

// WITH_COROUTINES
// WITH_RUNTIME
// !LANGUAGE: +ReleaseCoroutines
// NO_CHECK_LAMBDA_INLINING
// FILE: test.kt
inline suspend fun foo(x: suspend () -> String) = x()
// FILE: box.kt
import helpers.ContinuationAdapter
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: ContinuationAdapter<Unit>() {
override fun resume(value: Unit) {
}
override fun resumeWithException(exception: Throwable) {
throw exception
}
})
}
suspend fun String.id() = this
fun box(): String {
var res = ""
builder {
res = foo("OK"::id)
}
return res
}