Introduce createCoroutineUnchecked intrinsic

Also use it for buildSequence implenentation

 #KT-16155 Fixed
This commit is contained in:
Denis Zharkov
2017-02-03 14:03:30 +03:00
parent 9a71a20ad6
commit 4f6a77cf38
13 changed files with 107 additions and 97 deletions
-9
View File
@@ -17,15 +17,6 @@
package kotlin.coroutines.experimental
import kotlin.coroutines.experimental.intrinsics.*
internal fun <R, T> (suspend R.() -> T).createCoroutineInternal(
receiver: R,
completion: Continuation<T>
): Continuation<Unit> = this.asDynamic()(receiver, completion, true)
internal fun <T> (suspend () -> T).createCoroutineInternal(
completion: Continuation<T>
): Continuation<Unit> = this.asDynamic()(completion, true)
@JsName("CoroutineImpl")
internal abstract class CoroutineImpl(private val resultContinuation: Continuation<Any?>) : Continuation<Any?> {
protected var state = 0
@@ -32,3 +32,14 @@ public inline fun <R, T> (suspend R.() -> T).startCoroutineUninterceptedOrReturn
receiver: R,
completion: Continuation<T>
): Any? = this.asDynamic()(receiver, completion, false)
@SinceKotlin("1.1")
public fun <R, T> (suspend R.() -> T).createCoroutineUnchecked(
receiver: R,
completion: Continuation<T>
): Continuation<Unit> = this.asDynamic()(receiver, completion, true)
@SinceKotlin("1.1")
public fun <T> (suspend () -> T).createCoroutineUnchecked(
completion: Continuation<T>
): Continuation<Unit> = this.asDynamic()(completion, true)