Add test for obsolete issue

#KT-19467 Obsolete
This commit is contained in:
Denis Zharkov
2017-08-07 13:32:28 +07:00
parent 3ae084b1b3
commit 45d5f6a950
5 changed files with 59 additions and 0 deletions
@@ -0,0 +1,35 @@
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
class Controller {
var result = ""
suspend fun <T> suspendWithResult(value: T): T = suspendCoroutineOrReturn { c ->
c.resume(value)
COROUTINE_SUSPENDED
}
}
fun builder(c: suspend Controller.() -> Unit): String {
val controller = Controller()
c.startCoroutine(controller, EmptyContinuation)
return controller.result
}
fun box(): String {
val value = builder {
for (x: Long in 20L..30L step 5L) {
listOf("#").forEach {
result += it + suspendWithResult(x).toString()
}
}
result += "."
}
if (value != "#20#25#30.") return "fail: suspend in for body: $value"
return "OK"
}