diff --git a/libraries/stdlib/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt b/libraries/stdlib/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt index d58e4142ba9..f8f9964ded3 100644 --- a/libraries/stdlib/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt +++ b/libraries/stdlib/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt @@ -35,7 +35,7 @@ abstract class CoroutineImpl( // label == -1 when coroutine cannot be started (it is just a factory object) or has already finished execution // label == 0 in initial part of the coroutine @JvmField - var label: Int = if (completion != null) 0 else -1 + protected var label: Int = if (completion != null) 0 else -1 private val _context: CoroutineContext? = completion?.context @@ -71,35 +71,3 @@ abstract class CoroutineImpl( throw IllegalStateException("create(Any?;Continuation) has not been overridden") } } - -abstract class CoroutineImplForNamedFunction( - completion: Continuation? -) : CoroutineImpl(0, completion), Continuation { - private companion object { - private const val LAST_BIT_MASK = 1 shl 31 - } - - @JvmField - var data: Any? = null - - @JvmField - var exception: Throwable? = null - - fun checkAndFlushLastBit(): Boolean { - if (label and LAST_BIT_MASK != 0) { - label -= LAST_BIT_MASK - return true - } - - return false - } - - override fun doResume(data: Any?, exception: Throwable?): Any? { - this.data = data - this.exception = exception - this.label = this.label or LAST_BIT_MASK - return doResume() - } - - protected abstract fun doResume(): Any? -} diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index 79999e34125..f85204dd2b1 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt @@ -1981,6 +1981,7 @@ public final class kotlin/coroutines/experimental/CoroutinesKt { public static final fun createCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; public static final fun startCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/experimental/Continuation;)V public static final fun startCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)V + public static final fun suspendCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object; } public final class kotlin/coroutines/experimental/EmptyCoroutineContext : kotlin/coroutines/experimental/CoroutineContext { @@ -2028,7 +2029,7 @@ public final class kotlin/coroutines/experimental/intrinsics/IntrinsicsKt { public abstract class kotlin/coroutines/experimental/jvm/internal/CoroutineImpl : kotlin/jvm/internal/Lambda, kotlin/coroutines/experimental/Continuation { protected field completion Lkotlin/coroutines/experimental/Continuation; - public field label I + protected field label I public fun (ILkotlin/coroutines/experimental/Continuation;)V public fun create (Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; public fun create (Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; @@ -2039,16 +2040,6 @@ public abstract class kotlin/coroutines/experimental/jvm/internal/CoroutineImpl public fun resumeWithException (Ljava/lang/Throwable;)V } -public abstract class kotlin/coroutines/experimental/jvm/internal/CoroutineImplForNamedFunction : kotlin/coroutines/experimental/jvm/internal/CoroutineImpl, kotlin/coroutines/experimental/Continuation { - public static final field Companion Lkotlin/coroutines/experimental/jvm/internal/CoroutineImplForNamedFunction$Companion; - public field data Ljava/lang/Object; - public field exception Ljava/lang/Throwable; - public fun (Lkotlin/coroutines/experimental/Continuation;)V - public final fun checkAndFlushLastBit ()Z - protected abstract fun doResume ()Ljava/lang/Object; - protected fun doResume (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object; -} - public final class kotlin/coroutines/experimental/jvm/internal/CoroutineIntrinsics { public static final fun normalizeContinuation (Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; } diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt index 1d4e88f6a0e..c1fb7ca964b 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt @@ -1800,6 +1800,7 @@ public final class kotlin/coroutines/experimental/CoroutinesKt { public static final fun createCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; public static final fun startCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/experimental/Continuation;)V public static final fun startCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)V + public static final fun suspendCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object; } public final class kotlin/coroutines/experimental/EmptyCoroutineContext : kotlin/coroutines/experimental/CoroutineContext { @@ -1847,7 +1848,7 @@ public final class kotlin/coroutines/experimental/intrinsics/IntrinsicsKt { public abstract class kotlin/coroutines/experimental/jvm/internal/CoroutineImpl : kotlin/jvm/internal/Lambda, kotlin/coroutines/experimental/Continuation { protected field completion Lkotlin/coroutines/experimental/Continuation; - public field label I + protected field label I public fun (ILkotlin/coroutines/experimental/Continuation;)V public fun create (Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; public fun create (Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; @@ -1858,16 +1859,6 @@ public abstract class kotlin/coroutines/experimental/jvm/internal/CoroutineImpl public fun resumeWithException (Ljava/lang/Throwable;)V } -public abstract class kotlin/coroutines/experimental/jvm/internal/CoroutineImplForNamedFunction : kotlin/coroutines/experimental/jvm/internal/CoroutineImpl, kotlin/coroutines/experimental/Continuation { - public static final field Companion Lkotlin/coroutines/experimental/jvm/internal/CoroutineImplForNamedFunction$Companion; - public field data Ljava/lang/Object; - public field exception Ljava/lang/Throwable; - public fun (Lkotlin/coroutines/experimental/Continuation;)V - public final fun checkAndFlushLastBit ()Z - protected abstract fun doResume ()Ljava/lang/Object; - protected fun doResume (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object; -} - public final class kotlin/coroutines/experimental/jvm/internal/CoroutineIntrinsics { public static final fun normalizeContinuation (Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation; }