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 fc3dc61403f..2d81981e8c2 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
@@ -233,8 +233,6 @@ public abstract class CLICompiler {
configuration.put(CLIConfigurationKeys.COMPILER_JAR_LOCATOR, locator);
}
- configuration.put(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK, arguments.skipMetadataVersionCheck);
-
setupLanguageVersionSettings(configuration, arguments);
}
@@ -281,6 +279,7 @@ public abstract class CLICompiler {
new LanguageVersionSettingsImpl(
languageVersion,
ApiVersion.createByLanguageVersion(apiVersion),
+ arguments.skipMetadataVersionCheck,
extraLanguageFeatures,
arguments.apiVersion != null
)
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/JvmRuntimeVersionsConsistencyChecker.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/JvmRuntimeVersionsConsistencyChecker.kt
index 03108478e82..9e569358457 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/JvmRuntimeVersionsConsistencyChecker.kt
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/JvmRuntimeVersionsConsistencyChecker.kt
@@ -130,6 +130,7 @@ object JvmRuntimeVersionsConsistencyChecker {
val newSettings = LanguageVersionSettingsImpl(
languageVersionSettings.languageVersion,
inferredApiVersion,
+ languageVersionSettings.skipMetadataVersionCheck,
languageVersionSettings.additionalFeatures,
isApiVersionExplicit = false
)
diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/KotlinRemoteReplService.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/KotlinRemoteReplService.kt
index f10d1b44ee4..06cc26e2b20 100644
--- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/KotlinRemoteReplService.kt
+++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/KotlinRemoteReplService.kt
@@ -22,8 +22,7 @@ import org.jetbrains.kotlin.cli.common.repl.*
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
import org.jetbrains.kotlin.cli.jvm.repl.GenericReplCompiler
import org.jetbrains.kotlin.cli.jvm.repl.GenericReplCompilerState
-import org.jetbrains.kotlin.config.CommonConfigurationKeys
-import org.jetbrains.kotlin.config.CompilerConfiguration
+import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.daemon.common.CompileService
import org.jetbrains.kotlin.daemon.common.RemoteOperationsTracer
import org.jetbrains.kotlin.script.KotlinScriptDefinition
@@ -53,7 +52,8 @@ open class KotlinJvmReplService(
addJvmClasspathRoots(PathUtil.getKotlinPathsForCompiler().let { listOf(it.runtimePath, it.reflectPath, it.scriptRuntimePath) })
addJvmClasspathRoots(templateClasspath)
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script")
- put(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK, true)
+ put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS,
+ LanguageVersionSettingsImpl(LanguageVersion.LATEST, ApiVersion.LATEST, skipMetadataVersionCheck = true))
}
protected fun makeScriptDefinition(templateClasspath: List, templateClassName: String): KotlinScriptDefinition? {
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt b/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt
index fc86d8b9652..7c2d36a2fb7 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt
@@ -20,9 +20,6 @@ object CommonConfigurationKeys {
@JvmField
val LANGUAGE_VERSION_SETTINGS = CompilerConfigurationKey("language version settings")
- @JvmField
- val SKIP_METADATA_VERSION_CHECK = CompilerConfigurationKey("skip metadata version check")
-
@JvmField
val DISABLE_INLINE = CompilerConfigurationKey("disable inline")
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/CompilerDeserializationConfiguration.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/CompilerDeserializationConfiguration.kt
index ca257d93298..7b4776a5967 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/CompilerDeserializationConfiguration.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/CompilerDeserializationConfiguration.kt
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.resolve
-import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.languageVersionSettings
@@ -25,5 +24,5 @@ import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfigu
class CompilerDeserializationConfiguration(configuration: CompilerConfiguration) : DeserializationConfiguration {
override val typeAliasesAllowed = configuration.languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
- override val skipMetadataVersionCheck = configuration.getBoolean(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK)
+ override val skipMetadataVersionCheck = configuration.languageVersionSettings.skipMetadataVersionCheck
}
diff --git a/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt b/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt
index 74aaca12dad..be03dc09981 100644
--- a/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt
+++ b/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt
@@ -108,6 +108,8 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava
get() = error("Must not be called")
diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
index 47a2c635b97..1e9d0f22160 100644
--- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
+++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
@@ -100,6 +100,8 @@ interface LanguageVersionSettings {
// Please do not use this to enable/disable specific features/checks. Instead add a new LanguageFeature entry and call supportsFeature
val languageVersion: LanguageVersion
+ val skipMetadataVersionCheck: Boolean
+
val additionalFeatures: Collection
@Deprecated("This is a temporary solution, please do not use.")
@@ -109,6 +111,7 @@ interface LanguageVersionSettings {
class LanguageVersionSettingsImpl @JvmOverloads constructor(
override val languageVersion: LanguageVersion,
override val apiVersion: ApiVersion,
+ override val skipMetadataVersionCheck: Boolean = false,
additionalFeatures: Collection = emptySet(),
override val isApiVersionExplicit: Boolean = false
) : LanguageVersionSettings {
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt
index bed06913c16..a52688c5789 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt
@@ -93,6 +93,7 @@ fun Project.getLanguageVersionSettings(contextModule: Module? = null): LanguageV
return LanguageVersionSettingsImpl(
languageVersion,
apiVersion,
+ arguments.skipMetadataVersionCheck,
extraLanguageFeatures
)
}
@@ -111,7 +112,12 @@ val Module.languageVersionSettings: LanguageVersionSettings
this
)
- return LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures)
+ return LanguageVersionSettingsImpl(
+ languageVersion,
+ ApiVersion.createByLanguageVersion(apiVersion),
+ facetSettings.skipMetadataVersionCheck,
+ extraLanguageFeatures
+ )
}
val Module.targetPlatform: TargetPlatformKind<*>?
diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt
index 392af29446b..19f449cb599 100644
--- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt
+++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt
@@ -123,6 +123,12 @@ class KotlinFacetSettings {
coroutinesError = value == CoroutineSupport.DISABLED
}
}
+
+ var skipMetadataVersionCheck: Boolean
+ get() = compilerArguments?.skipMetadataVersionCheck == true
+ set(value) {
+ compilerArguments!!.skipMetadataVersionCheck = value
+ }
}
fun TargetPlatformKind<*>.createCompilerArguments(): CommonCompilerArguments {