Files
kotlin-fork/compiler/testData/codegen/box/operatorConventions/suspendOperators.kt
T
Svyatoslav Kuzmich a3e2d2804c [Wasm] Update testData after adding K2 and new test infra support.
- Actualize muted K2 tests
- Actualize muted K1 tests with module systems because legacy Wasm test
  infra had no respect for "// MODULE: ..." test directives
2023-06-25 10:20:40 +02:00

33 lines
644 B
Kotlin
Vendored

// WITH_STDLIB
// WITH_COROUTINES
// IGNORE_BACKEND_K1: ANY
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
fun <T> runBlocking(c: suspend () -> T): T {
var res: T? = null
c.startCoroutine(Continuation(EmptyCoroutineContext) {
res = it.getOrThrow()
})
return res!!
}
class A {
var value = ""
suspend operator fun get(x: Int) = value
suspend operator fun set(x: Int, v: String) {
value = v
}
operator suspend fun contains(y: String): Boolean = y == value
}
fun box() = runBlocking {
val a = A()
if ("" !in a) return@runBlocking "FAIL"
a[1] = "OK"
a[2]
}