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 ae1dd2c445c..9f910379fbd 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java
@@ -247,11 +247,15 @@ public abstract class CLICompiler {
// If only "-api-version" is specified, language version is assumed to be the latest
languageVersion = LanguageVersion.LATEST;
}
+
if (apiVersion == null) {
// If only "-language-version" is specified, API version is assumed to be equal to the language version
// (API version cannot be greater than the language version)
apiVersion = languageVersion;
}
+ else {
+ configuration.put(CLIConfigurationKeys.IS_API_VERSION_EXPLICIT, true);
+ }
if (apiVersion.compareTo(languageVersion) > 0) {
configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY).report(
@@ -281,8 +285,7 @@ public abstract class CLICompiler {
languageVersion,
ApiVersion.createByLanguageVersion(apiVersion),
arguments.skipMetadataVersionCheck,
- extraLanguageFeatures,
- arguments.apiVersion != null
+ extraLanguageFeatures
)
);
}
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLIConfigurationKeys.java b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLIConfigurationKeys.java
index 69aef735300..60a80e4dc6d 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLIConfigurationKeys.java
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLIConfigurationKeys.java
@@ -29,6 +29,8 @@ public class CLIConfigurationKeys {
CompilerConfigurationKey.create("allow kotlin package");
public static final CompilerConfigurationKey REPORT_PERF =
CompilerConfigurationKey.create("report performance information");
+ public static final CompilerConfigurationKey IS_API_VERSION_EXPLICIT =
+ CompilerConfigurationKey.create("is API version explicit");
// Used in Eclipse plugin (see KotlinCLICompiler)
public static final CompilerConfigurationKey COMPILER_JAR_LOCATOR =
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 99d92c90877..d8f3e256f45 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/JvmRuntimeVersionsConsistencyChecker.kt
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/JvmRuntimeVersionsConsistencyChecker.kt
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.cli.jvm
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.openapi.vfs.VirtualFile
+import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
@@ -120,7 +121,7 @@ object JvmRuntimeVersionsConsistencyChecker {
val actualApi = ApiVersion.parse(actualRuntimeVersion.toString())
if (actualApi != null) {
val inferredApiVersion =
- if (@Suppress("DEPRECATION") languageVersionSettings.isApiVersionExplicit)
+ if (configuration.getBoolean(CLIConfigurationKeys.IS_API_VERSION_EXPLICIT))
languageVersionSettings.apiVersion
else
// "minOf" is needed in case when API version was inferred from language version and it's older than actualApi.
diff --git a/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt b/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt
index 437f2aba752..d28f526b61a 100644
--- a/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt
+++ b/compiler/tests-common/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt
@@ -109,9 +109,6 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava = emptyMap(),
- override val isApiVersionExplicit: Boolean = false
+ private val specificFeatures: Map = emptyMap()
) : LanguageVersionSettings {
override fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State {
specificFeatures[feature]?.let { return it }