From 570d66be46cfb4f2e3596cafb84b794df58df185 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 7 Aug 2019 12:06:45 +0200 Subject: [PATCH] Support "// !API_VERSION: LATEST" directive in tests Useful for tests that check behavior which depends on having a recent API version enabled, and that don't want to depend on a specific fixed API version (to prevent eventual obsoletion) --- .../kotlin/checkers/CompilerTestLanguageVersionSettings.kt | 7 +++++-- .../util/src/org/jetbrains/kotlin/config/ApiVersion.kt | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) 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 67cd8ee5f02..6fc5748715c 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt @@ -76,8 +76,11 @@ fun parseLanguageVersionSettings(directives: Map): CompilerTestL return null } - val apiVersion = (if (apiVersionString != null) ApiVersion.parse(apiVersionString) else ApiVersion.LATEST_STABLE) - ?: error("Unknown API version: $apiVersionString") + val apiVersion = when (apiVersionString) { + null -> ApiVersion.LATEST_STABLE + "LATEST" -> ApiVersion.LATEST + else -> ApiVersion.parse(apiVersionString) ?: error("Unknown API version: $apiVersionString") + } val languageVersion = maxOf(LanguageVersion.LATEST_STABLE, LanguageVersion.fromVersionString(apiVersion.versionString)!!) diff --git a/compiler/util/src/org/jetbrains/kotlin/config/ApiVersion.kt b/compiler/util/src/org/jetbrains/kotlin/config/ApiVersion.kt index bdf00e413ba..7c7dcd9f8df 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/ApiVersion.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/ApiVersion.kt @@ -52,6 +52,9 @@ class ApiVersion private constructor( @JvmField val KOTLIN_1_3 = createByLanguageVersion(LanguageVersion.KOTLIN_1_3) + @JvmField + val LATEST: ApiVersion = createByLanguageVersion(LanguageVersion.values().last()) + @JvmField val LATEST_STABLE: ApiVersion = createByLanguageVersion(LanguageVersion.LATEST_STABLE)