diff --git a/compiler/testData/builtin-classes/default/kotlin-coroutines.txt b/compiler/testData/builtin-classes/default/kotlin-coroutines.txt index 89fd3e87806..9b78b274125 100644 --- a/compiler/testData/builtin-classes/default/kotlin-coroutines.txt +++ b/compiler/testData/builtin-classes/default/kotlin-coroutines.txt @@ -1,13 +1,43 @@ package-fragment kotlin.coroutines @kotlin.SinceKotlin(version = "1.1") public interface Continuation { + public abstract val context: kotlin.coroutines.CoroutineContext + public abstract fun (): kotlin.coroutines.CoroutineContext public abstract fun resume(/*0*/ value: T): kotlin.Unit public abstract fun resumeWithException(/*0*/ exception: kotlin.Throwable): kotlin.Unit } -@kotlin.SinceKotlin(version = "1.1") public interface ContinuationDispatcher { - public open fun dispatchResume(/*0*/ value: T, /*1*/ continuation: kotlin.coroutines.Continuation): kotlin.Boolean - public open fun dispatchResumeWithException(/*0*/ exception: kotlin.Throwable, /*1*/ continuation: kotlin.coroutines.Continuation<*>): kotlin.Boolean +@kotlin.SinceKotlin(version = "1.1") public interface ContinuationInterceptor : kotlin.coroutines.CoroutineContextElement { + public abstract override /*1*/ /*fake_override*/ val contextKey: kotlin.coroutines.CoroutineContextKey<*> + public abstract override /*1*/ /*fake_override*/ fun (): kotlin.coroutines.CoroutineContextKey<*> + public abstract override /*1*/ /*fake_override*/ fun fold(/*0*/ initial: R, /*1*/ operation: (R, kotlin.coroutines.CoroutineContextElement) -> R): R + public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ key: kotlin.coroutines.CoroutineContextKey): E? + public abstract fun interceptContinuation(/*0*/ continuation: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation + public abstract override /*1*/ /*fake_override*/ fun minusKey(/*0*/ key: kotlin.coroutines.CoroutineContextKey<*>): kotlin.coroutines.CoroutineContext + public abstract override /*1*/ /*fake_override*/ fun plus(/*0*/ context: kotlin.coroutines.CoroutineContext): kotlin.coroutines.CoroutineContext + + public companion object Companion : kotlin.coroutines.CoroutineContextKey { + /*primary*/ private constructor Companion() + } +} + +@kotlin.SinceKotlin(version = "1.1") public interface CoroutineContext { + public abstract fun fold(/*0*/ initial: R, /*1*/ operation: (R, kotlin.coroutines.CoroutineContextElement) -> R): R + public abstract operator fun get(/*0*/ key: kotlin.coroutines.CoroutineContextKey): E? + public abstract fun minusKey(/*0*/ key: kotlin.coroutines.CoroutineContextKey<*>): kotlin.coroutines.CoroutineContext + public abstract operator fun plus(/*0*/ context: kotlin.coroutines.CoroutineContext): kotlin.coroutines.CoroutineContext +} + +@kotlin.SinceKotlin(version = "1.1") public interface CoroutineContextElement : kotlin.coroutines.CoroutineContext { + public abstract val contextKey: kotlin.coroutines.CoroutineContextKey<*> + public abstract fun (): kotlin.coroutines.CoroutineContextKey<*> + public abstract override /*1*/ /*fake_override*/ fun fold(/*0*/ initial: R, /*1*/ operation: (R, kotlin.coroutines.CoroutineContextElement) -> R): R + public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ key: kotlin.coroutines.CoroutineContextKey): E? + public abstract override /*1*/ /*fake_override*/ fun minusKey(/*0*/ key: kotlin.coroutines.CoroutineContextKey<*>): kotlin.coroutines.CoroutineContext + public abstract override /*1*/ /*fake_override*/ fun plus(/*0*/ context: kotlin.coroutines.CoroutineContext): kotlin.coroutines.CoroutineContext +} + +@kotlin.SinceKotlin(version = "1.1") public interface CoroutineContextKey { } @kotlin.SinceKotlin(version = "1.1") @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class RestrictsSuspension : kotlin.Annotation { diff --git a/compiler/testData/codegen/bytecodeText/constCoroutine.kt b/compiler/testData/codegen/bytecodeText/constCoroutine.kt index 66142e25e27..3628b6c7b07 100644 --- a/compiler/testData/codegen/bytecodeText/constCoroutine.kt +++ b/compiler/testData/codegen/bytecodeText/constCoroutine.kt @@ -20,6 +20,7 @@ fun box(): String { return "OK" } -// 2 GETSTATIC kotlin/Unit.INSTANCE : Lkotlin/Unit; -// 1 GETSTATIC EmptyContinuation.INSTANCE -// 3 GETSTATIC +// 2 GETSTATIC kotlin/Unit.INSTANCE +// 1 GETSTATIC EmptyContinuation.Companion +// 3 GETSTATIC kotlin\/coroutines\/EmptyCoroutineContext.INSTANCE +// 6 GETSTATIC diff --git a/compiler/testData/codegen/java8/box/async.kt b/compiler/testData/codegen/java8/box/async.kt index ca8e7b30792..1d15a2582ac 100644 --- a/compiler/testData/codegen/java8/box/async.kt +++ b/compiler/testData/codegen/java8/box/async.kt @@ -48,6 +48,8 @@ fun box(): String { fun async(c: suspend () -> T): CompletableFuture { val future = CompletableFuture() c.startCoroutine(object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: T) { future.complete(data) } diff --git a/compiler/testData/codegen/java8/box/asyncException.kt b/compiler/testData/codegen/java8/box/asyncException.kt index e9cb842c9fa..1c37a4838dc 100644 --- a/compiler/testData/codegen/java8/box/asyncException.kt +++ b/compiler/testData/codegen/java8/box/asyncException.kt @@ -45,6 +45,8 @@ fun box(): String { fun async(c: suspend () -> T): CompletableFuture { val future = CompletableFuture() c.startCoroutine(object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: T) { future.complete(data) } diff --git a/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt b/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt index e2f22122e52..d83d913db23 100644 --- a/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt +++ b/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt @@ -4,6 +4,7 @@ import kotlin.coroutines.intrinsics.* fun async(x: suspend Controller.() -> Unit) { x.startCoroutine(Controller(), object : Continuation { + override val context: CoroutineContext = null!! override fun resume(value: Unit) {} override fun resumeWithException(exception: Throwable) {}