diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt index e534e832f39..774cf66706a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt @@ -338,6 +338,9 @@ object ModifierCheckerCore { val dependencies = featureDependencies[modifier] ?: return true for (dependency in dependencies) { + if (dependency == LanguageFeature.Coroutines && languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)) { + continue + } val restrictedTargets = featureDependenciesTargets[dependency] if (restrictedTargets != null && actualTargets.intersect(restrictedTargets).isEmpty()) { continue diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/coroutineCallChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/coroutineCallChecker.kt index 5601b59699c..f0ef2cfcb1f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/coroutineCallChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/coroutineCallChecker.kt @@ -135,6 +135,7 @@ object BuilderFunctionsCallChecker : CallChecker { } fun checkCoroutinesFeature(languageVersionSettings: LanguageVersionSettings, diagnosticHolder: DiagnosticSink, reportOn: PsiElement) { + if (languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)) return val diagnosticData = LanguageFeature.Coroutines to languageVersionSettings when (languageVersionSettings.getFeatureSupport(LanguageFeature.Coroutines)) { LanguageFeature.State.ENABLED -> { diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index 94846a588ee..72f4f77e69d 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -241,12 +241,6 @@ class LanguageVersionSettingsImpl @JvmOverloads constructor( override fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State { specificFeatures[feature]?.let { return it } - if (feature == LanguageFeature.Coroutines) { - if (getFeatureSupport(LanguageFeature.ReleaseCoroutines) == LanguageFeature.State.ENABLED) { - return LanguageFeature.State.ENABLED - } - } - val since = feature.sinceVersion if (since != null && languageVersion >= since && apiVersion >= feature.sinceApiVersion) { return feature.defaultState