Read old suspend functions in 1.3

This commit is contained in:
Ilmir Usmanov
2018-07-05 19:42:23 +03:00
parent 6b73e528ce
commit 5b7e099842
14 changed files with 147 additions and 16 deletions
@@ -138,6 +138,7 @@ public fun <R, T> (suspend R.() -> T).startCoroutine(
*/
@SinceKotlin("1.3")
@InlineOnly
@kotlin.internal.RequireKotlin("1.3")
public suspend inline fun <T> suspendCoroutine(crossinline block: (Continuation<T>) -> Unit): T =
suspendCoroutineUninterceptedOrReturn { c: Continuation<T> ->
val safe = SafeContinuation(c.intercepted())
@@ -37,6 +37,7 @@ import kotlin.internal.InlineOnly
*/
@SinceKotlin("1.3")
@InlineOnly
@kotlin.internal.RequireKotlin("1.3")
public suspend inline fun <T> suspendCoroutineUninterceptedOrReturn(crossinline block: (Continuation<T>) -> Any?): T =
throw NotImplementedError("Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic")
@@ -3,6 +3,7 @@
* that can be found in the license/LICENSE.txt file.
*/
@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER")
@file:kotlin.jvm.JvmMultifileClass
@file:kotlin.jvm.JvmName("SequenceBuilderKt")
@@ -54,6 +55,7 @@ public abstract class SequenceBuilder<in T> internal constructor() {
* @sample samples.collections.Sequences.Building.buildSequenceYieldAll
* @sample samples.collections.Sequences.Building.buildFibonacciSequence
*/
@kotlin.internal.RequireKotlin("1.3")
public abstract suspend fun yield(value: T)
/**
@@ -63,6 +65,7 @@ public abstract class SequenceBuilder<in T> internal constructor() {
*
* @sample samples.collections.Sequences.Building.buildSequenceYieldAll
*/
@kotlin.internal.RequireKotlin("1.3")
public abstract suspend fun yieldAll(iterator: Iterator<T>)
/**
@@ -70,6 +73,7 @@ public abstract class SequenceBuilder<in T> internal constructor() {
*
* @sample samples.collections.Sequences.Building.buildSequenceYieldAll
*/
@kotlin.internal.RequireKotlin("1.3")
public suspend fun yieldAll(elements: Iterable<T>) {
if (elements is Collection && elements.isEmpty()) return
return yieldAll(elements.iterator())
@@ -82,6 +86,7 @@ public abstract class SequenceBuilder<in T> internal constructor() {
*
* @sample samples.collections.Sequences.Building.buildSequenceYieldAll
*/
@kotlin.internal.RequireKotlin("1.3")
public suspend fun yieldAll(sequence: Sequence<T>) = yieldAll(sequence.iterator())
}