From 927706883e98d3f7e8eb63d11a328e50a9bd91aa Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 20 Aug 2018 18:05:45 +0200 Subject: [PATCH] Do not report pre-release errors if release LV is used in pre-release compiler This commit effectively reverts d386712903e7d583bb74eb13cc00671733bb1d48. The reason is that when using a release language version, you can only "see" the subset of a pre-release library which consists of released and supported features, so reporting an error is not helpful there. Also, it presents a problem currently when using kotlinc 1.3 (which is pre-release) with language version 1.2 (stable) against the bundled stdlib of version 1.3 (pre-release) #KT-21267 Declined --- .../tests/org/jetbrains/kotlin/codegen/JvmModuleProtoBufTest.kt | 2 +- .../src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/JvmModuleProtoBufTest.kt b/compiler/tests/org/jetbrains/kotlin/codegen/JvmModuleProtoBufTest.kt index 8cbebc69d04..ae4d0b561ba 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/JvmModuleProtoBufTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/JvmModuleProtoBufTest.kt @@ -45,7 +45,7 @@ class JvmModuleProtoBufTest : KtUsefulTestCase() { "-d", tmpdir.path, "-module-name", moduleName, "-language-version", compileWith.versionString - ) + extraOptions + listOfNotNull("-Xskip-metadata-version-check".takeIf { KotlinCompilerVersion.isPreRelease() })) + ) + extraOptions) val mapping = ModuleMapping.loadModuleMapping( File(tmpdir, "META-INF/$moduleName.${ModuleMapping.MAPPING_FILE_EXT}").readBytes(), "test", diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index f5ac791d74e..a5cefb7827c 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -275,7 +275,7 @@ class LanguageVersionSettingsImpl @JvmOverloads constructor( } } - override fun isPreRelease(): Boolean = languageVersion.isPreRelease() || + override fun isPreRelease(): Boolean = KotlinCompilerVersion.isPreRelease() || specificFeatures.any { (feature, state) -> state == LanguageFeature.State.ENABLED && feature.forcesPreReleaseBinariesIfEnabled() }