diff --git a/libraries/stdlib/test/coroutines/CoroutineContextTest.kt b/libraries/stdlib/test/coroutines/CoroutineContextTest.kt index 119d188d149..9d7e2ac2b7b 100644 --- a/libraries/stdlib/test/coroutines/CoroutineContextTest.kt +++ b/libraries/stdlib/test/coroutines/CoroutineContextTest.kt @@ -18,6 +18,7 @@ package test.coroutines import kotlin.test.* import org.junit.Test +import kotlin.coroutines.* class CoroutineContextTest { data class CtxA(val i: Int) : AbstractCoroutineContextElement() { @@ -36,13 +37,13 @@ class CoroutineContextTest { } object Disp1 : AbstractCoroutineContextElement(), ContinuationInterceptor { - override fun interceptContinuation(continuation: CoroutineContinuation): CoroutineContinuation = continuation + override fun interceptContinuation(continuation: Continuation): Continuation = continuation override val contextKey: CoroutineContextKey<*> = ContinuationInterceptor override fun toString(): String = "Disp1" } object Disp2 : AbstractCoroutineContextElement(), ContinuationInterceptor { - override fun interceptContinuation(continuation: CoroutineContinuation): CoroutineContinuation = continuation + override fun interceptContinuation(continuation: Continuation): Continuation = continuation override val contextKey: CoroutineContextKey<*> = ContinuationInterceptor override fun toString(): String = "Disp2" } diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt index 4f671f7fca2..fe2f517a30c 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt @@ -180,18 +180,31 @@ public abstract class kotlin/collections/ShortIterator : java/util/Iterator, kot } public abstract interface class kotlin/coroutines/Continuation { + public abstract fun getContext ()Lkotlin/coroutines/CoroutineContext; public abstract fun resume (Ljava/lang/Object;)V public abstract fun resumeWithException (Ljava/lang/Throwable;)V } -public abstract interface class kotlin/coroutines/ContinuationDispatcher { - public abstract fun dispatchResume (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Z - public abstract fun dispatchResumeWithException (Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Z +public abstract interface class kotlin/coroutines/ContinuationInterceptor : kotlin/coroutines/CoroutineContextElement { + public static final field Companion Lkotlin/coroutines/ContinuationInterceptor$Companion; + public abstract fun interceptContinuation (Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; } -public final class kotlin/coroutines/ContinuationDispatcher$DefaultImpls { - public static fun dispatchResume (Lkotlin/coroutines/ContinuationDispatcher;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Z - public static fun dispatchResumeWithException (Lkotlin/coroutines/ContinuationDispatcher;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Z +public final class kotlin/coroutines/ContinuationInterceptor$Companion : kotlin/coroutines/CoroutineContextKey { +} + +public abstract interface class kotlin/coroutines/CoroutineContext { + public abstract fun fold (Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; + public abstract fun get (Lkotlin/coroutines/CoroutineContextKey;)Lkotlin/coroutines/CoroutineContextElement; + public abstract fun minusKey (Lkotlin/coroutines/CoroutineContextKey;)Lkotlin/coroutines/CoroutineContext; + public abstract fun plus (Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; +} + +public abstract interface class kotlin/coroutines/CoroutineContextElement : kotlin/coroutines/CoroutineContext { + public abstract fun getContextKey ()Lkotlin/coroutines/CoroutineContextKey; +} + +public abstract interface class kotlin/coroutines/CoroutineContextKey { } public abstract interface annotation class kotlin/coroutines/RestrictsSuspension : java/lang/annotation/Annotation { @@ -468,12 +481,12 @@ public class kotlin/jvm/internal/CollectionToArray { public static fun toArray (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object; } -public abstract class kotlin/jvm/internal/CoroutineImpl : kotlin/jvm/internal/Lambda, kotlin/coroutines/Continuation, kotlin/jvm/internal/DispatchedContinuation { +public abstract class kotlin/jvm/internal/CoroutineImpl : kotlin/jvm/internal/Lambda, kotlin/coroutines/Continuation { protected field completion Lkotlin/coroutines/Continuation; protected field label I public fun (ILkotlin/coroutines/Continuation;)V protected abstract fun doResume (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object; - public fun getDispatcher ()Lkotlin/coroutines/ContinuationDispatcher; + public fun getContext ()Lkotlin/coroutines/CoroutineContext; public final fun getFacade ()Lkotlin/coroutines/Continuation; public fun resume (Ljava/lang/Object;)V public fun resumeWithException (Ljava/lang/Throwable;)V @@ -481,11 +494,6 @@ public abstract class kotlin/jvm/internal/CoroutineImpl : kotlin/jvm/internal/La public final class kotlin/jvm/internal/CoroutineIntrinsics { public static final fun normalizeContinuation (Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; - public static final fun wrapContinuationIfNeeded (Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;)Lkotlin/coroutines/Continuation; -} - -public abstract interface class kotlin/jvm/internal/DispatchedContinuation : kotlin/coroutines/Continuation { - public abstract fun getDispatcher ()Lkotlin/coroutines/ContinuationDispatcher; } public final class kotlin/jvm/internal/DoubleCompanionObject { 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 161d3002b26..884cd1b0d44 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 @@ -1753,21 +1753,36 @@ public final class kotlin/concurrent/TimersKt { public static final fun timer (Ljava/lang/String;Z)Ljava/util/Timer; } +public abstract class kotlin/coroutines/AbstractCoroutineContextElement : kotlin/coroutines/CoroutineContextElement { + public fun ()V + public fun fold (Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; + public fun get (Lkotlin/coroutines/CoroutineContextKey;)Lkotlin/coroutines/CoroutineContextElement; + public fun minusKey (Lkotlin/coroutines/CoroutineContextKey;)Lkotlin/coroutines/CoroutineContext; + public fun plus (Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; +} + public final class kotlin/coroutines/CoroutinesLibraryKt { - public static final fun createCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;)Lkotlin/coroutines/Continuation; - public static final fun createCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;)Lkotlin/coroutines/Continuation; - public static synthetic fun createCoroutine$default (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;ILjava/lang/Object;)Lkotlin/coroutines/Continuation; - public static synthetic fun createCoroutine$default (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;ILjava/lang/Object;)Lkotlin/coroutines/Continuation; - public static final fun startCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;)V - public static final fun startCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;)V - public static synthetic fun startCoroutine$default (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;ILjava/lang/Object;)V - public static synthetic fun startCoroutine$default (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;ILjava/lang/Object;)V + public static final fun createCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; + public static final fun createCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; + public static final fun startCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V + public static final fun startCoroutine (Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V public static final fun suspendCoroutine (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public final class kotlin/coroutines/EmptyCoroutineContext : kotlin/coroutines/CoroutineContext { + public static final field INSTANCE Lkotlin/coroutines/EmptyCoroutineContext; + public fun fold (Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; + public fun get (Lkotlin/coroutines/CoroutineContextKey;)Lkotlin/coroutines/CoroutineContextElement; + public fun hashCode ()I + public fun minusKey (Lkotlin/coroutines/CoroutineContextKey;)Lkotlin/coroutines/CoroutineContext; + public fun plus (Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; + public fun toString ()Ljava/lang/String; +} + public final class kotlin/coroutines/SafeContinuation : kotlin/coroutines/Continuation { public static final field Companion Lkotlin/coroutines/SafeContinuation$Companion; public fun (Lkotlin/coroutines/Continuation;)V + public fun getContext ()Lkotlin/coroutines/CoroutineContext; public final fun getResult ()Ljava/lang/Object; public fun resume (Ljava/lang/Object;)V public fun resumeWithException (Ljava/lang/Throwable;)V