From bd7ad8c9d5ad22eb762baf250e1823424fb1936d Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Fri, 16 Mar 2018 19:34:55 +0300 Subject: [PATCH] Raise deprecation level to ERROR of coroutineContext inside kotlin.coroutines.experimental.intrinsics package #KT-22400 --- .../intrinsicSemantics/coroutineContext.kt | 3 +++ .../coroutineContextReceiver.kt | 2 ++ .../coroutineContextReceiverNotIntrinsic.kt | 1 + .../coroutineContextIntrinsic.kt | 3 ++- .../coroutines/coroutineContext.kt | 20 +++++++++---------- .../experimental/intrinsics/Intrinsics.kt | 17 +++------------- 6 files changed, 21 insertions(+), 25 deletions(-) diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt index f3ee86b8f75..12299008074 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContext.kt @@ -4,6 +4,7 @@ import helpers.* import kotlin.coroutines.experimental.* import kotlin.test.assertEquals +@Suppress("DEPRECATION_ERROR") suspend fun suspendHereOld() = if (kotlin.coroutines.experimental.intrinsics.coroutineContext != EmptyCoroutineContext) "${kotlin.coroutines.experimental.intrinsics.coroutineContext} != $EmptyCoroutineContext" @@ -16,6 +17,7 @@ suspend fun suspendHereNew() = else "OK" +@Suppress("DEPRECATION_ERROR") suspend fun multipleArgsOld(a: Any, b: Any, c: Any) = if (kotlin.coroutines.experimental.intrinsics.coroutineContext != EmptyCoroutineContext) "${kotlin.coroutines.experimental.intrinsics.coroutineContext} != $EmptyCoroutineContext" @@ -59,6 +61,7 @@ fun box(): String { return "fail 2 $res" } res = builder { + @Suppress("DEPRECATION_ERROR") if (kotlin.coroutines.experimental.intrinsics.coroutineContext != EmptyCoroutineContext) "${kotlin.coroutines.experimental.intrinsics.coroutineContext} != $EmptyCoroutineContext" else diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt index 4c321180fcd..e1d71801d21 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiver.kt @@ -5,6 +5,7 @@ import kotlin.coroutines.experimental.* import kotlin.coroutines.experimental.intrinsics.* import kotlin.test.assertEquals +@Suppress("DEPRECATION_ERROR") class Controller { suspend fun controllerSuspendHereOld() = if (kotlin.coroutines.experimental.intrinsics.coroutineContext != EmptyCoroutineContext) @@ -61,6 +62,7 @@ fun box(): String { return "fail 2 $res" } res = c.builder { + @Suppress("DEPRECATION_ERROR") if (kotlin.coroutines.experimental.intrinsics.coroutineContext != EmptyCoroutineContext) "${kotlin.coroutines.experimental.intrinsics.coroutineContext} != $EmptyCoroutineContext" else diff --git a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt index ef336068b13..5b48bcc8bea 100644 --- a/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt +++ b/compiler/testData/codegen/box/coroutines/intrinsicSemantics/coroutineContextReceiverNotIntrinsic.kt @@ -5,6 +5,7 @@ import kotlin.coroutines.experimental.* import kotlin.coroutines.experimental.intrinsics.* import kotlin.test.assertEquals +@Suppress("DEPRECATION_ERROR") class Controller { val coroutineContext = object : CoroutineContext { public override fun get(key: CoroutineContext.Key): E? = null diff --git a/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic.kt b/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic.kt index a703ea18d5d..087f04a7268 100644 --- a/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic.kt +++ b/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic.kt @@ -6,6 +6,7 @@ suspend fun suspendHere(ctx: CoroutineContext) = suspendCoroutineOrReturn cont.context } + suspendCoroutineOrReturn { cont -> cont.context } suspend fun notTailCall(): String { return suspendHere(retrieveCoroutineContext()) diff --git a/compiler/testData/diagnostics/testsWithStdLib/coroutines/coroutineContext.kt b/compiler/testData/diagnostics/testsWithStdLib/coroutines/coroutineContext.kt index 51d0dd7a737..9353075fb03 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/coroutines/coroutineContext.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/coroutines/coroutineContext.kt @@ -4,38 +4,38 @@ import kotlin.coroutines.experimental.* fun ordinal() { - kotlin.coroutines.experimental.intrinsics.coroutineContext + kotlin.coroutines.experimental.intrinsics.coroutineContext kotlin.coroutines.experimental.coroutineContext coroutineContext } suspend fun named() { - kotlin.coroutines.experimental.intrinsics.coroutineContext + kotlin.coroutines.experimental.intrinsics.coroutineContext kotlin.coroutines.experimental.coroutineContext coroutineContext } class A { - val coroutineContextOld = kotlin.coroutines.experimental.intrinsics.coroutineContext + val coroutineContextOld = kotlin.coroutines.experimental.intrinsics.coroutineContext val coroutineContextNew = kotlin.coroutines.experimental.coroutineContext val context = coroutineContext } class Controller { fun ordinal() { - kotlin.coroutines.experimental.intrinsics.coroutineContext + kotlin.coroutines.experimental.intrinsics.coroutineContext kotlin.coroutines.experimental.coroutineContext coroutineContext } suspend fun named() { - kotlin.coroutines.experimental.intrinsics.coroutineContext + kotlin.coroutines.experimental.intrinsics.coroutineContext kotlin.coroutines.experimental.coroutineContext coroutineContext } suspend fun severalArgs(s: String, a: Any) { - kotlin.coroutines.experimental.intrinsics.coroutineContext + kotlin.coroutines.experimental.intrinsics.coroutineContext kotlin.coroutines.experimental.coroutineContext coroutineContext } @@ -48,16 +48,16 @@ fun builderSeveralArgs(c: (Int, Int, Int) -> CoroutineContext) = {} fun builderSuspendSeveralArgs(c: suspend (Int, Int, Int) -> CoroutineContext) = {} fun test() { - builder { kotlin.coroutines.experimental.intrinsics.coroutineContext } + builder { kotlin.coroutines.experimental.intrinsics.coroutineContext } builder { kotlin.coroutines.experimental.coroutineContext } builder { coroutineContext } - builderSuspend { kotlin.coroutines.experimental.intrinsics.coroutineContext } + builderSuspend { kotlin.coroutines.experimental.intrinsics.coroutineContext } builderSuspend { kotlin.coroutines.experimental.coroutineContext } builderSuspend { coroutineContext } - builderSeveralArgs {_, _,_ -> kotlin.coroutines.experimental.intrinsics.coroutineContext } + builderSeveralArgs {_, _,_ -> kotlin.coroutines.experimental.intrinsics.coroutineContext } builderSeveralArgs {_, _,_ -> kotlin.coroutines.experimental.coroutineContext } builderSeveralArgs {_, _,_ -> coroutineContext } - builderSuspendSeveralArgs {_, _,_ -> kotlin.coroutines.experimental.intrinsics.coroutineContext} + builderSuspendSeveralArgs {_, _,_ -> kotlin.coroutines.experimental.intrinsics.coroutineContext} builderSuspendSeveralArgs {_, _,_ -> kotlin.coroutines.experimental.coroutineContext} builderSuspendSeveralArgs {_, _,_ -> coroutineContext} } diff --git a/libraries/stdlib/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt b/libraries/stdlib/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt index a0cb4d93eb8..20f2e2ee6bd 100644 --- a/libraries/stdlib/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt +++ b/libraries/stdlib/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. */ @file:kotlin.jvm.JvmName("IntrinsicsKt") @@ -76,7 +65,7 @@ public inline fun Continuation.intercepted(): Continuation = @Deprecated( "Use kotlin.coroutines.experimental.coroutineContext instead", ReplaceWith("kotlin.coroutines.experimental.coroutineContext"), - DeprecationLevel.WARNING + DeprecationLevel.ERROR ) public suspend inline val coroutineContext: CoroutineContext get() {