From 4a370e9dba9e2f646012234d18bc92d8bb786e69 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 13 Feb 2018 17:14:16 +0100 Subject: [PATCH] Don't break the "API <= LV" rule in compiler tests Stability of the language version is used for example to determine whether the PRE_RELEASE_CLASS diagnostic should be reported. Now that there are pre-release classes in the standard library (Experimental et al.), we'd like to avoid this error on their usages in diagnostic tests which are using the "!API_VERSION: 1.3" directive --- .../kotlin/checkers/CompilerTestLanguageVersionSettings.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt index 8f2169e1145..fefffd3e1be 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt @@ -63,10 +63,12 @@ fun parseLanguageVersionSettings(directiveMap: Map): LanguageVer val apiVersion = (if (apiVersionString != null) ApiVersion.parse(apiVersionString) else ApiVersion.LATEST_STABLE) ?: error("Unknown API version: $apiVersionString") + val languageVersion = maxOf(LanguageVersion.LATEST_STABLE, LanguageVersion.fromVersionString(apiVersion.versionString)!!) + val languageFeatures = languageFeaturesString?.let(::collectLanguageFeatureMap).orEmpty() return CompilerTestLanguageVersionSettings( - languageFeatures, apiVersion, LanguageVersion.LATEST_STABLE, + languageFeatures, apiVersion, languageVersion, mapOf(*listOfNotNull(experimental, useExperimental).toTypedArray()) ) }