blob: fb1be9a9e0cf009c6070b86758538374c3dd5f80 [file] [log] [blame]
fun builder(c: suspend () -> Unit) {}
private val lock = Any()
suspend fun suspensionPoint() {}
fun test() {
builder {
inlineMe {
suspensionPoint()
}
}
builder {
monitorInFinally(
{},
{ suspensionPoint() }
)
}
builder {
withCrossinline {}
withCrossinline {
suspensionPoint()
}
}
synchronized(lock) {
builder {
suspensionPoint()
}
}
synchronized(lock) {
object : SuspendRunnable {
override suspend fun run() {
suspensionPoint()
}
}
}
}
interface SuspendRunnable {
suspend fun run()
}
inline fun withCrossinline(crossinline a: suspend () -> Unit): suspend () -> Unit {
val c : suspend () -> Unit = {
inlineMe {
a()
}
}
return c
}