From b6a55f74f43bdc7b3ca27b2bf28893137ac9a314 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 6 Feb 2018 13:32:55 +0100 Subject: [PATCH] Support patch versions in RequireKotlin with kind=COMPILER_VERSION --- .../org/jetbrains/kotlin/resolve/deprecationUtil.kt | 3 ++- .../kotlin/config/KotlinCompilerVersion.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/deprecationUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/deprecationUtil.kt index 3a3b9c077cd..06f78559160 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/deprecationUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/deprecationUtil.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.resolve import com.intellij.psi.PsiElement import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.config.ApiVersion +import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor @@ -301,7 +302,7 @@ class DeprecationResolver( ProtoBuf.VersionRequirement.VersionKind.API_VERSION -> languageVersionSettings.apiVersion ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION -> - ApiVersion.LATEST_STABLE + KotlinCompilerVersion.getVersion()?.let((ApiVersion)::parse) else -> null } if (currentVersion != null && currentVersion < requiredVersion) { diff --git a/core/util.runtime/src/org/jetbrains/kotlin/config/KotlinCompilerVersion.java b/core/util.runtime/src/org/jetbrains/kotlin/config/KotlinCompilerVersion.java index b470d1059af..bb1ee0e6b0b 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/config/KotlinCompilerVersion.java +++ b/core/util.runtime/src/org/jetbrains/kotlin/config/KotlinCompilerVersion.java @@ -16,6 +16,8 @@ package org.jetbrains.kotlin.config; +import org.jetbrains.annotations.Nullable; + public class KotlinCompilerVersion { // The value of this constant is generated by the build script // DON'T MODIFY IT @@ -38,6 +40,15 @@ public class KotlinCompilerVersion { return IS_PRE_RELEASE; } + /** + * @return version of this compiler, or `null` if it isn't known (if VERSION is "@snapshot@") + */ + @Nullable + public static String getVersion() { + //noinspection ConstantConditions + return VERSION.equals("@snapshot@") ? null : VERSION; + } + static { //noinspection ConstantConditions if (!VERSION.equals("@snapshot@") && !VERSION.contains("-") && IS_PRE_RELEASE) {