From f540b4bc822650697a13d11204339668f3efff33 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Thu, 17 Mar 2022 10:36:13 +0100 Subject: [PATCH] KotlinToolingVersion: Evaluate maturity eagerly --- .../tooling/core/KotlinToolingVersion.kt | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/libraries/tools/kotlin-tooling-core/src/main/kotlin/org/jetbrains/kotlin/tooling/core/KotlinToolingVersion.kt b/libraries/tools/kotlin-tooling-core/src/main/kotlin/org/jetbrains/kotlin/tooling/core/KotlinToolingVersion.kt index f0b4f6b8ef7..ede46af879d 100644 --- a/libraries/tools/kotlin-tooling-core/src/main/kotlin/org/jetbrains/kotlin/tooling/core/KotlinToolingVersion.kt +++ b/libraries/tools/kotlin-tooling-core/src/main/kotlin/org/jetbrains/kotlin/tooling/core/KotlinToolingVersion.kt @@ -42,20 +42,19 @@ class KotlinToolingVersion( SNAPSHOT, DEV, MILESTONE, ALPHA, BETA, RC, STABLE } - val maturity: Maturity - get() { - val classifier = this.classifier?.toLowerCase(Locale.ROOT) - return when { - classifier == null || classifier.matches(Regex("""(release-)?\d+""")) -> Maturity.STABLE - classifier.matches(Regex("""(rc)(\d*)?(-release)?-?\d*""")) -> Maturity.RC - classifier.matches(Regex("""beta(\d*)?(-release)?-?\d*""")) -> Maturity.BETA - classifier.matches(Regex("""alpha(\d*)?(-release)?-?\d*""")) -> Maturity.ALPHA - classifier.matches(Regex("""m\d+(-release)?(-\d*)?""")) -> Maturity.MILESTONE - classifier.matches(Regex("""dev-?\d*""")) -> Maturity.DEV - classifier == "snapshot" -> Maturity.SNAPSHOT - else -> throw IllegalArgumentException("Can't infer maturity of KotlinVersion $this") - } + val maturity: Maturity = run { + val classifier = this.classifier?.toLowerCase(Locale.ROOT) + when { + classifier == null || classifier.matches(Regex("""(release-)?\d+""")) -> Maturity.STABLE + classifier.matches(Regex("""(rc)(\d*)?(-release)?-?\d*""")) -> Maturity.RC + classifier.matches(Regex("""beta(\d*)?(-release)?-?\d*""")) -> Maturity.BETA + classifier.matches(Regex("""alpha(\d*)?(-release)?-?\d*""")) -> Maturity.ALPHA + classifier.matches(Regex("""m\d+(-release)?(-\d*)?""")) -> Maturity.MILESTONE + classifier.matches(Regex("""dev-?\d*""")) -> Maturity.DEV + classifier == "snapshot" -> Maturity.SNAPSHOT + else -> throw IllegalArgumentException("Can't infer maturity of KotlinVersion $this") } + } override fun compareTo(other: KotlinToolingVersion): Int { if (this == other) return 0