diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
index a7dc7fb00fe..daaec63a969 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
@@ -270,9 +270,6 @@ public abstract class CLICompiler {
if (arguments.multiPlatform) {
extraLanguageFeatures.put(LanguageFeature.MultiPlatformProjects, LanguageFeature.State.ENABLED);
}
- if (arguments.noCheckImpl) {
- extraLanguageFeatures.put(LanguageFeature.MultiPlatformDoNotCheckImpl, LanguageFeature.State.ENABLED);
- }
LanguageFeature.State coroutinesState = chooseCoroutinesApplicabilityLevel(configuration, arguments);
if (coroutinesState != null) {
@@ -282,6 +279,7 @@ public abstract class CLICompiler {
LanguageVersionSettingsImpl settings =
new LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures);
settings.switchFlag(AnalysisFlags.getSkipMetadataVersionCheck(), arguments.skipMetadataVersionCheck);
+ settings.switchFlag(AnalysisFlags.getMultiPlatformDoNotCheckImpl(), arguments.noCheckImpl);
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, settings);
}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt
index 0e7c3ebd57f..22ed91754e3 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.resolve.checkers
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import org.jetbrains.kotlin.config.AnalysisFlags
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.*
@@ -57,7 +58,7 @@ class HeaderImplDeclarationChecker(val moduleToCheck: ModuleDescriptor? = null)
if (descriptor !is MemberDescriptor) return
- val checkImpl = !languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformDoNotCheckImpl)
+ val checkImpl = !languageVersionSettings.isFlagEnabled(AnalysisFlags.multiPlatformDoNotCheckImpl)
if (descriptor.isHeader && declaration.hasModifier(KtTokens.HEADER_KEYWORD)) {
checkHeaderDeclarationHasImplementation(declaration, descriptor, diagnosticHolder, checkImpl)
}
diff --git a/compiler/util/src/org/jetbrains/kotlin/config/AnalysisFlags.kt b/compiler/util/src/org/jetbrains/kotlin/config/AnalysisFlags.kt
index 7394d7bd6cb..0ec790f2355 100644
--- a/compiler/util/src/org/jetbrains/kotlin/config/AnalysisFlags.kt
+++ b/compiler/util/src/org/jetbrains/kotlin/config/AnalysisFlags.kt
@@ -39,4 +39,7 @@ private operator fun AnalysisFlag.Companion.provideDelegate(instance: Any?, prop
object AnalysisFlags {
@JvmStatic
val skipMetadataVersionCheck by AnalysisFlag
+
+ @JvmStatic
+ val multiPlatformDoNotCheckImpl by AnalysisFlag
}
diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
index 37e8d6efd6f..5423b06fde0 100644
--- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
+++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
@@ -52,8 +52,7 @@ enum class LanguageFeature(
Coroutines(KOTLIN_1_1, ApiVersion.KOTLIN_1_1, "https://kotlinlang.org/docs/diagnostics/experimental-coroutines", State.ENABLED_WITH_WARNING),
- MultiPlatformProjects(null, defaultState = State.DISABLED),
- MultiPlatformDoNotCheckImpl(null, defaultState = State.DISABLED),
+ MultiPlatformProjects(sinceVersion = null, defaultState = State.DISABLED),
;