diff --git a/compiler/testData/codegen/box/coroutines/asyncIterator.kt b/compiler/testData/codegen/box/coroutines/asyncIterator.kt index 64ad512e72f..4d83dfe74de 100644 --- a/compiler/testData/codegen/box/coroutines/asyncIterator.kt +++ b/compiler/testData/codegen/box/coroutines/asyncIterator.kt @@ -28,7 +28,7 @@ fun asyncGenerate(block: suspend AsyncGenerator.() -> Unit): AsyncSequenc } } -class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, Continuation { +class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, ContinuationAdapter() { var computedNext = false var nextValue: T? = null var nextStep: Continuation? = null diff --git a/compiler/testData/codegen/box/coroutines/asyncIteratorNullMerge.kt b/compiler/testData/codegen/box/coroutines/asyncIteratorNullMerge.kt index 414e39d3ff3..074db75e103 100644 --- a/compiler/testData/codegen/box/coroutines/asyncIteratorNullMerge.kt +++ b/compiler/testData/codegen/box/coroutines/asyncIteratorNullMerge.kt @@ -28,7 +28,7 @@ fun asyncGenerate(block: suspend AsyncGenerator.() -> Unit): AsyncSequenc } } -class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, Continuation { +class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, ContinuationAdapter() { var computedNext = false var nextValue: T? = null var nextStep: Continuation? = null diff --git a/compiler/testData/codegen/box/coroutines/asyncIteratorToList.kt b/compiler/testData/codegen/box/coroutines/asyncIteratorToList.kt index 548342a99de..a85f011bfec 100644 --- a/compiler/testData/codegen/box/coroutines/asyncIteratorToList.kt +++ b/compiler/testData/codegen/box/coroutines/asyncIteratorToList.kt @@ -28,7 +28,7 @@ fun asyncGenerate(block: suspend AsyncGenerator.() -> Unit): AsyncSequenc } } -class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, Continuation { +class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, ContinuationAdapter() { var computedNext = false var nextValue: T? = null var nextStep: Continuation? = null diff --git a/compiler/testData/codegen/box/coroutines/beginWithException.kt b/compiler/testData/codegen/box/coroutines/beginWithException.kt index 92bb519413c..98d269a0e38 100644 --- a/compiler/testData/codegen/box/coroutines/beginWithException.kt +++ b/compiler/testData/codegen/box/coroutines/beginWithException.kt @@ -12,7 +12,7 @@ suspend fun suspendHere(): Any = suspendCoroutineOrReturn { x -> } fun builder(c: suspend () -> Unit) { var exception: Throwable? = null - c.createCoroutine(object : Continuation { + c.createCoroutine(object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: Unit) { diff --git a/compiler/testData/codegen/box/coroutines/controlFlow/throwFromCatch.kt b/compiler/testData/codegen/box/coroutines/controlFlow/throwFromCatch.kt index 53aa496e52b..0dc9f15896f 100644 --- a/compiler/testData/codegen/box/coroutines/controlFlow/throwFromCatch.kt +++ b/compiler/testData/codegen/box/coroutines/controlFlow/throwFromCatch.kt @@ -27,7 +27,7 @@ class Controller { fun builder(c: suspend Controller.() -> Unit): String { val controller = Controller() - c.startCoroutine(controller, object : Continuation { + c.startCoroutine(controller, object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: Unit) { diff --git a/compiler/testData/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt b/compiler/testData/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt index 2bb5ec496d7..a764477187a 100644 --- a/compiler/testData/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt +++ b/compiler/testData/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt @@ -20,7 +20,7 @@ class Controller { fun builder(c: suspend Controller.() -> Unit): String { val controller = Controller() - c.startCoroutine(controller, object : Continuation { + c.startCoroutine(controller, object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: Unit) {} diff --git a/compiler/testData/codegen/box/coroutines/createCoroutinesOnManualInstances.kt b/compiler/testData/codegen/box/coroutines/createCoroutinesOnManualInstances.kt index 3dfa74052ad..ab0e2aa4182 100644 --- a/compiler/testData/codegen/box/coroutines/createCoroutinesOnManualInstances.kt +++ b/compiler/testData/codegen/box/coroutines/createCoroutinesOnManualInstances.kt @@ -1,6 +1,7 @@ // IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JVM_IR // WITH_RUNTIME +// WITH_COROUTINES // IGNORE_BACKEND: JS // COMMON_COROUTINES_TEST import COROUTINES_PACKAGE.* @@ -9,7 +10,7 @@ import COROUTINES_PACKAGE.intrinsics.COROUTINE_SUSPENDED fun runCustomLambdaAsCoroutine(e: Throwable? = null, x: (Continuation) -> Any?): String { var result = "fail" var wasIntercepted = false - val c = (x as suspend () -> String).createCoroutine(object: Continuation { + val c = (x as suspend () -> String).createCoroutine(object: ContinuationAdapter() { override fun resumeWithException(exception: Throwable) { throw exception } @@ -27,7 +28,7 @@ fun runCustomLambdaAsCoroutine(e: Throwable? = null, x: (Continuation) - return null } - override fun interceptContinuation(continuation: Continuation) = object : Continuation { + override fun interceptContinuation(continuation: Continuation) = object : helpers.ContinuationAdapter() { override val context: CoroutineContext get() = continuation.context diff --git a/compiler/testData/codegen/box/coroutines/crossInlineWithCapturedOuterReceiver.kt b/compiler/testData/codegen/box/coroutines/crossInlineWithCapturedOuterReceiver.kt index c48db21f879..98fc0320117 100644 --- a/compiler/testData/codegen/box/coroutines/crossInlineWithCapturedOuterReceiver.kt +++ b/compiler/testData/codegen/box/coroutines/crossInlineWithCapturedOuterReceiver.kt @@ -23,7 +23,7 @@ fun builder(c: suspend () -> Unit) { fun builderConsumer(c: suspend () -> Consumer): Consumer { var res: Consumer? = null - c.startCoroutine(object : Continuation { + c.startCoroutine(object : ContinuationAdapter() { override fun resume(value: Consumer) { res = value } diff --git a/compiler/testData/codegen/box/coroutines/dispatchResume.kt b/compiler/testData/codegen/box/coroutines/dispatchResume.kt index 27633850898..a08643483c7 100644 --- a/compiler/testData/codegen/box/coroutines/dispatchResume.kt +++ b/compiler/testData/codegen/box/coroutines/dispatchResume.kt @@ -33,7 +33,7 @@ abstract class ContinuationDispatcher : AbstractCoroutineContextElement(Continua private class DispatchedContinuation( val dispatcher: ContinuationDispatcher, val continuation: Continuation -): Continuation { +): ContinuationAdapter() { override val context: CoroutineContext = continuation.context override fun resume(value: T) { diff --git a/compiler/testData/codegen/box/coroutines/generate.kt b/compiler/testData/codegen/box/coroutines/generate.kt index b43743f8756..6c8945af3b5 100644 --- a/compiler/testData/codegen/box/coroutines/generate.kt +++ b/compiler/testData/codegen/box/coroutines/generate.kt @@ -42,7 +42,7 @@ class GeneratedSequence(private val block: suspend Generator.() -> Uni } class GeneratedIterator(block: suspend Generator.() -> Unit) : AbstractIterator(), Generator { - private var nextStep: Continuation = block.createCoroutine(this, object : Continuation { + private var nextStep: Continuation = block.createCoroutine(this, object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: Unit) { diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt index ddabb525730..edd01e22398 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt @@ -22,7 +22,7 @@ suspend fun multipleArgs(a: Any, b: Any, c: Any) = fun builder(c: suspend () -> String): String { var fromSuspension: String? = null - val continuation = object : Continuation { + val continuation = object : ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt index 534ec1b8c90..e0f523c6646 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt @@ -23,7 +23,7 @@ class Controller { fun builder(c: suspend Controller.() -> String): String { var fromSuspension: String? = null - c.startCoroutine(this, object : Continuation { + c.startCoroutine(this, object : ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext @@ -61,4 +61,4 @@ fun box(): String { } return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt index b49986d32c3..7ffc56636ec 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt @@ -27,7 +27,7 @@ class Controller { fun builder(c: suspend Controller.() -> String): String { var fromSuspension: String? = null - c.startCoroutine(this, object : Continuation { + c.startCoroutine(this, object : ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext @@ -60,4 +60,4 @@ fun box(): String { } return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/intercepted.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/intercepted.kt index 53191a0a706..8b87267c3be 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/intercepted.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/intercepted.kt @@ -33,7 +33,7 @@ fun builder(expectedCount: Int, c: suspend () -> String): String { var counter = 0 val result = try { - c.startCoroutineUninterceptedOrReturn(object: Continuation { + c.startCoroutineUninterceptedOrReturn(object: ContinuationAdapter() { override val context: CoroutineContext get() = ContinuationDispatcher { counter++ } @@ -60,7 +60,7 @@ class ContinuationDispatcher(val dispatcher: () -> Unit) : AbstractCoroutineCont private class DispatchedContinuation( val dispatcher: () -> Unit, val continuation: Continuation -): Continuation { +): ContinuationAdapter() { override val context: CoroutineContext = continuation.context override fun resume(value: T) { diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt index 37ea0a82bf8..8a39902baa6 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt @@ -21,7 +21,7 @@ suspend fun suspendWithException(): String = suspendCoroutineOrReturn { x -> fun builder(c: suspend () -> String): String { var fromSuspension: String? = null - c.startCoroutine(object: Continuation { + c.startCoroutine(object: ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt index 825abe44a3a..9acd37595e6 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt @@ -22,7 +22,7 @@ fun builder(shouldSuspend: Boolean, c: suspend () -> String): String { var fromSuspension: String? = null val result = try { - c.startCoroutineUninterceptedOrReturn(object: Continuation { + c.startCoroutineUninterceptedOrReturn(object: ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt index 835c9bc4e98..02ee5b850d7 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt @@ -23,7 +23,7 @@ fun builder(shouldSuspend: Boolean, expectedCount: Int, c: suspend () -> String) var counter = 0 val result = try { - c.startCoroutineUninterceptedOrReturn(object: Continuation { + c.startCoroutineUninterceptedOrReturn(object: ContinuationAdapter() { override val context: CoroutineContext get() = ContinuationDispatcher { counter++ } @@ -58,7 +58,7 @@ class ContinuationDispatcher(val dispatcher: () -> Unit) : AbstractCoroutineCont private class DispatchedContinuation( val dispatcher: () -> Unit, val continuation: Continuation -): Continuation { +): ContinuationAdapter() { override val context: CoroutineContext = continuation.context override fun resume(value: T) { diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/suspendCoroutineUninterceptedOrReturn.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/suspendCoroutineUninterceptedOrReturn.kt index 2589e749f2f..42d75fa8ebc 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/suspendCoroutineUninterceptedOrReturn.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/suspendCoroutineUninterceptedOrReturn.kt @@ -23,7 +23,7 @@ fun builder(shouldSuspend: Boolean, c: suspend () -> String): String { var counter = 0 val result = try { - c.startCoroutineUninterceptedOrReturn(object: Continuation { + c.startCoroutineUninterceptedOrReturn(object: ContinuationAdapter() { override val context: CoroutineContext get() = ContinuationDispatcher { counter++ } @@ -58,7 +58,7 @@ class ContinuationDispatcher(val dispatcher: () -> Unit) : AbstractCoroutineCont private class DispatchedContinuation( val dispatcher: () -> Unit, val continuation: Continuation -): Continuation { +): ContinuationAdapter() { override val context: CoroutineContext = continuation.context override fun resume(value: T) { diff --git a/compiler/testData/codegen/box/coroutines/localFunctions/named/stateMachine.kt b/compiler/testData/codegen/box/coroutines/localFunctions/named/stateMachine.kt index b73684101c9..971a8740b1e 100644 --- a/compiler/testData/codegen/box/coroutines/localFunctions/named/stateMachine.kt +++ b/compiler/testData/codegen/box/coroutines/localFunctions/named/stateMachine.kt @@ -32,7 +32,7 @@ suspend fun callLocal() { } fun builder(c: suspend () -> Unit) { - val continuation = object: Continuation { + val continuation = object: ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext diff --git a/compiler/testData/codegen/box/coroutines/overrideDefaultArgument.kt b/compiler/testData/codegen/box/coroutines/overrideDefaultArgument.kt index 15552534362..d646d020064 100644 --- a/compiler/testData/codegen/box/coroutines/overrideDefaultArgument.kt +++ b/compiler/testData/codegen/box/coroutines/overrideDefaultArgument.kt @@ -50,7 +50,7 @@ suspend fun sleep(): Unit = suspendCoroutine { c -> } fun async(f: suspend () -> Unit) { - f.startCoroutine(object : Continuation { + f.startCoroutine(object : ContinuationAdapter() { override fun resume(x: Unit) { proceed = { result += "done;" @@ -63,7 +63,7 @@ fun async(f: suspend () -> Unit) { } fun asyncSuspend(f: suspend () -> Unit) { - val coroutine = f.createCoroutine(object : Continuation { + val coroutine = f.createCoroutine(object : ContinuationAdapter() { override fun resume(x: Unit) { proceed = { result += "done;" diff --git a/compiler/testData/codegen/box/coroutines/simpleWithHandleResult.kt b/compiler/testData/codegen/box/coroutines/simpleWithHandleResult.kt index 3ff4fe46be4..e19351b8481 100644 --- a/compiler/testData/codegen/box/coroutines/simpleWithHandleResult.kt +++ b/compiler/testData/codegen/box/coroutines/simpleWithHandleResult.kt @@ -15,7 +15,7 @@ suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> fun builder(c: suspend () -> Int): Int { var res = 0 - c.createCoroutine(object : Continuation { + c.createCoroutine(object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: Int) { diff --git a/compiler/testData/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt b/compiler/testData/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt index d21d5aa149c..28a7334e980 100644 --- a/compiler/testData/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt +++ b/compiler/testData/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt @@ -33,7 +33,7 @@ abstract class ContinuationDispatcher : AbstractCoroutineContextElement(Continua private class DispatchedContinuation( val dispatcher: ContinuationDispatcher, val continuation: Continuation -): Continuation { +): ContinuationAdapter() { override val context: CoroutineContext = continuation.context override fun resume(value: T) { diff --git a/compiler/testData/codegen/box/coroutines/tailOperations/tailInlining.kt b/compiler/testData/codegen/box/coroutines/tailOperations/tailInlining.kt index 779c174a8f3..2d65e2ae077 100644 --- a/compiler/testData/codegen/box/coroutines/tailOperations/tailInlining.kt +++ b/compiler/testData/codegen/box/coroutines/tailOperations/tailInlining.kt @@ -40,7 +40,7 @@ suspend fun bar(x: Int): Int = suspendCoroutine { c -> inline suspend fun foo(x: Int) = bar(x) fun async(a: suspend () -> Unit) { - a.startCoroutine(object : Continuation { + a.startCoroutine(object : ContinuationAdapter() { override fun resume(value: Unit) { proceed = { log("done") diff --git a/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt b/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt index a1ad46014cf..7208040924d 100644 --- a/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt +++ b/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt @@ -14,7 +14,7 @@ suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> fun builder(c: suspend () -> Unit) { var wasResumeCalled = false - c.startCoroutine(object : Continuation { + c.startCoroutine(object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(value: Unit) { diff --git a/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt b/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt index 9fb150b7da0..f123f54e1c8 100644 --- a/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt +++ b/compiler/testData/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt @@ -14,7 +14,7 @@ suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> fun builder(c: suspend () -> Unit) { var wasResumeCalled = false - c.startCoroutine(object : Continuation { + c.startCoroutine(object : ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(value: Unit) { diff --git a/compiler/testData/codegen/boxInline/suspend/callableReference/simple.kt b/compiler/testData/codegen/boxInline/suspend/callableReference/simple.kt index 6f5b510d4e1..7fa39feff09 100644 --- a/compiler/testData/codegen/boxInline/suspend/callableReference/simple.kt +++ b/compiler/testData/codegen/boxInline/suspend/callableReference/simple.kt @@ -7,16 +7,14 @@ inline suspend fun foo(x: suspend () -> String) = x() // FILE: box.kt // WITH_RUNTIME +// WITH_COROUTINES // COMMON_COROUTINES_TEST import COROUTINES_PACKAGE.* import COROUTINES_PACKAGE.intrinsics.* fun builder(c: suspend () -> Unit) { - c.startCoroutine(object: Continuation { - override val context: CoroutineContext - get() = EmptyCoroutineContext - + c.startCoroutine(object: helpers.ContinuationAdapter() { override fun resume(value: Unit) { } diff --git a/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/inlineOnly.kt b/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/inlineOnly.kt index 4ce87feb4c3..0434038bc29 100644 --- a/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/inlineOnly.kt +++ b/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/inlineOnly.kt @@ -1,6 +1,7 @@ // IGNORE_BACKEND: JVM_IR // FILE: inlined.kt // WITH_RUNTIME +// WITH_COROUTINES // NO_CHECK_LAMBDA_INLINING import kotlin.coroutines.experimental.* @@ -33,7 +34,7 @@ import kotlin.coroutines.experimental.* import kotlin.coroutines.experimental.intrinsics.* fun builder(c: suspend () -> Unit) { - val continuation = object: Continuation { + val continuation = object: helpers.ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext @@ -69,4 +70,4 @@ fun box(): String { proceed() if (!finished) return "resume on root continuation is not called" return result -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/simpleNamed.kt b/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/simpleNamed.kt index 7d96a0a6794..5e54391ab38 100644 --- a/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/simpleNamed.kt +++ b/compiler/testData/codegen/boxInline/suspend/inlineUsedAsNoinline/simpleNamed.kt @@ -1,6 +1,7 @@ // IGNORE_BACKEND: JVM_IR // FILE: inlined.kt // WITH_RUNTIME +// WITH_COROUTINES // NO_CHECK_LAMBDA_INLINING import kotlin.coroutines.experimental.* @@ -31,7 +32,7 @@ import kotlin.coroutines.experimental.* import kotlin.coroutines.experimental.intrinsics.* fun builder(c: suspend () -> Unit) { - val continuation = object: Continuation { + val continuation = object: helpers.ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext @@ -67,4 +68,4 @@ fun box(): String { proceed() if (!finished) return "resume on root continuation is not called" return result -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxInline/suspend/stateMachine/numberOfSuspentions.kt b/compiler/testData/codegen/boxInline/suspend/stateMachine/numberOfSuspentions.kt index a6bae77bbff..e26bbc1ef10 100644 --- a/compiler/testData/codegen/boxInline/suspend/stateMachine/numberOfSuspentions.kt +++ b/compiler/testData/codegen/boxInline/suspend/stateMachine/numberOfSuspentions.kt @@ -1,6 +1,7 @@ // FILE: inlined.kt // COMMON_COROUTINES_TEST // WITH_RUNTIME +// WITH_COROUTINES // NO_CHECK_LAMBDA_INLINING suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) { @@ -17,6 +18,7 @@ suspend inline fun crossinlineMe2(crossinline c: suspend () -> Unit) { import COROUTINES_PACKAGE.* import COROUTINES_PACKAGE.intrinsics.* +import helpers.* var result = "FAIL" var i = 0 @@ -30,7 +32,7 @@ suspend fun suspendHere() = suspendCoroutine { c -> } fun builder(c: suspend () -> Unit) { - val continuation = object: Continuation { + val continuation = object: ContinuationAdapter() { override val context: CoroutineContext get() = EmptyCoroutineContext @@ -67,4 +69,4 @@ fun box(): String { proceed() if (!finished) return "resume on root continuation is not called" return result -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/java8/box/async.kt b/compiler/testData/codegen/java8/box/async.kt index c79a48238e0..33213598957 100644 --- a/compiler/testData/codegen/java8/box/async.kt +++ b/compiler/testData/codegen/java8/box/async.kt @@ -1,6 +1,7 @@ // WITH_RUNTIME // COMMON_COROUTINES_TEST // FULL_JDK +// WITH_COROUTINES import java.util.concurrent.CompletableFuture import COROUTINES_PACKAGE.* @@ -48,7 +49,7 @@ fun box(): String { fun async(c: suspend () -> T): CompletableFuture { val future = CompletableFuture() - c.startCoroutine(object : Continuation { + c.startCoroutine(object : helpers.ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: T) { diff --git a/compiler/testData/codegen/java8/box/asyncException.kt b/compiler/testData/codegen/java8/box/asyncException.kt index f472ca4e230..003ba55aea8 100644 --- a/compiler/testData/codegen/java8/box/asyncException.kt +++ b/compiler/testData/codegen/java8/box/asyncException.kt @@ -1,6 +1,7 @@ // WITH_RUNTIME // COMMON_COROUTINES_TEST // FULL_JDK +// WITH_COROUTINES import java.util.concurrent.CompletableFuture import COROUTINES_PACKAGE.* @@ -45,7 +46,7 @@ fun box(): String { fun async(c: suspend () -> T): CompletableFuture { val future = CompletableFuture() - c.startCoroutine(object : Continuation { + c.startCoroutine(object : helpers.ContinuationAdapter() { override val context = EmptyCoroutineContext override fun resume(data: T) { diff --git a/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt b/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt index ee20c519714..5aa06559775 100644 --- a/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt +++ b/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt @@ -2,6 +2,7 @@ // COMMON_COROUTINES_TEST // FILE: A.kt // WITH_RUNTIME +// WITH_COROUTINES package a import COROUTINES_PACKAGE.* @@ -15,7 +16,7 @@ class Controller { } fun builder(c: suspend Controller.() -> Unit) { - c.startCoroutine(Controller(), object : Continuation { + c.startCoroutine(Controller(), object : helpers.ContinuationAdapter() { override val context: CoroutineContext = EmptyCoroutineContext override fun resume(value: Unit) {} diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/coroutineTestUtil.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/coroutineTestUtil.kt index e38a718bc16..66016666ef3 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/coroutineTestUtil.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/coroutineTestUtil.kt @@ -34,5 +34,9 @@ fun createTextForHelpers(coroutinesPackage: String): String { | override fun resume(data: Any?) {} | override fun resumeWithException(exception: Throwable) { throw exception } |} + | + |abstract class ContinuationAdapter : Continuation { + | override val context: CoroutineContext = EmptyCoroutineContext + |} """.trimMargin() }