Files
kotlin-fork/compiler/testData/codegen/boxInline/suspend/stateMachine/innerLambdaInsideLambda.kt
T
Pavel Punegov 8dcb763eca [K/N][test] Reset state in StateMachineChecker before the test
boxInline tests for suspend use StateMachineChecker and share the state
if compiled and run together. The single value accessed from all tests.
It is enough to reset state before the test is run.
2024-02-15 18:07:25 +00:00

40 lines
813 B
Kotlin
Vendored

// CHECK_STATE_MACHINE
// WITH_COROUTINES
// NO_CHECK_LAMBDA_INLINING
// WITH_STDLIB
// FILE: inlined.kt
suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
val l: suspend () -> Unit = {
val l1 : suspend () -> Unit = {
c()
c()
}
l1()
l1()
}
l()
l()
}
// FILE: inlineSite.kt
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
import helpers.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(CheckStateMachineContinuation)
}
fun box(): String {
StateMachineChecker.reset()
builder {
crossinlineMe {
StateMachineChecker.suspendHere()
StateMachineChecker.suspendHere()
}
}
StateMachineChecker.check(numberOfSuspensions = 16)
return "OK"
}