From 30bdd463ad045a52dd24e4cf539098fab7037864 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 11 Dec 2019 19:13:58 +0300 Subject: [PATCH] Do not lower SinceKotlin version for unsigned arrays extensions if they already has some --- .../tools/kotlin-stdlib-gen/src/templates/Aggregates.kt | 2 +- libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt | 2 +- libraries/tools/kotlin-stdlib-gen/src/templates/Elements.kt | 2 +- libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt | 2 +- .../tools/kotlin-stdlib-gen/src/templates/Generators.kt | 2 +- libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt | 2 +- libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt | 2 +- libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt | 2 +- .../kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt | 5 +++++ 9 files changed, 13 insertions(+), 8 deletions(-) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt index 48008cb4455..de93db67d48 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt @@ -16,7 +16,7 @@ object Aggregates : TemplateGroupBase() { sequenceClassification(terminal) } specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt index a6764a95f14..9b5602daa7d 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt @@ -14,7 +14,7 @@ object ArrayOps : TemplateGroupBase() { init { defaultBuilder { specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Elements.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Elements.kt index 8619da3873c..352f9bc88ca 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Elements.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Elements.kt @@ -14,7 +14,7 @@ object Elements : TemplateGroupBase() { defaultBuilder { sequenceClassification(terminal) specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } specialFor(RangesOfPrimitives) { diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt index f4dae54df40..c34d5f0e8ca 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt @@ -19,7 +19,7 @@ object Filtering : TemplateGroupBase() { sequenceClassification(intermediate, stateless) specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Generators.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Generators.kt index 4dc8b537407..5b32a5c4fa5 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Generators.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Generators.kt @@ -13,7 +13,7 @@ object Generators : TemplateGroupBase() { init { defaultBuilder { specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt index 804a21043e6..b7db1d361a7 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt @@ -20,7 +20,7 @@ object Mapping : TemplateGroupBase() { sequenceClassification(intermediate, stateless) } specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt index 12bec647ea2..498ca1f2703 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt @@ -13,7 +13,7 @@ object Numeric : TemplateGroupBase() { defaultBuilder { sequenceClassification(SequenceClass.terminal) specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt index 85e8bedd4f6..c48417826c3 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt @@ -13,7 +13,7 @@ object Ordering : TemplateGroupBase() { init { defaultBuilder { specialFor(ArraysOfUnsigned) { - since("1.3") + sinceAtLeast("1.3") annotation("@ExperimentalUnsignedTypes") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt index ba36b3a6db9..349212297da 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt @@ -74,6 +74,11 @@ class MemberBuilder( fun deprecate(value: Deprecation) { deprecate = value } fun deprecate(value: String) { deprecate = Deprecation(value) } fun since(value: String) { since = value } + fun sinceAtLeast(value: String) { + // TODO: comparing versions as strings, will work only up until Kotlin 1.10 or Kotlin 10.0 + since = maxOf(since, value, nullsFirst()) + } + fun platformName(name: String) { platformName = name } fun visibility(value: String) { visibility = value }