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)
This commit is contained in:
Alexander Udalov
2019-08-07 12:06:45 +02:00
parent 13b07e71e8
commit 570d66be46
2 changed files with 8 additions and 2 deletions
@@ -76,8 +76,11 @@ fun parseLanguageVersionSettings(directives: Map<String, String>): 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)!!)
@@ -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)