From 04bbf2393684fb7f552da667e8f28dfc1f83bbfb Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sat, 30 Mar 2019 04:41:52 +0300 Subject: [PATCH] Add explicit imports of kotlin.ranges more specific functions The extensions 'contains' and 'reversed' from kotlin.ranges can be more specific for IntRange, LongRange, etc than the same functions from kotlin.collections, yet they lose in overload resolution to the latter ones when invoked from kotlin.collections package because of same package package extensions are preferred (KT-30633). --- libraries/stdlib/common/src/generated/_Arrays.kt | 2 ++ libraries/stdlib/common/src/generated/_Collections.kt | 2 ++ libraries/stdlib/common/src/generated/_Maps.kt | 2 ++ libraries/stdlib/common/src/generated/_Sets.kt | 2 ++ libraries/stdlib/common/src/generated/_UArrays.kt | 2 ++ libraries/stdlib/common/src/generated/_UCollections.kt | 2 ++ libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt | 2 ++ libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt | 2 ++ libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt | 2 ++ libraries/stdlib/js/src/generated/_ArraysJs.kt | 2 ++ libraries/stdlib/js/src/generated/_CollectionsJs.kt | 2 ++ libraries/stdlib/js/src/generated/_UArraysJs.kt | 2 ++ libraries/stdlib/jvm/src/generated/_ArraysJvm.kt | 2 ++ libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt | 2 ++ libraries/stdlib/jvm/src/generated/_UArraysJvm.kt | 2 ++ .../tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt | 4 ++++ 16 files changed, 34 insertions(+) diff --git a/libraries/stdlib/common/src/generated/_Arrays.kt b/libraries/stdlib/common/src/generated/_Arrays.kt index 78c74edbf75..87167e72373 100644 --- a/libraries/stdlib/common/src/generated/_Arrays.kt +++ b/libraries/stdlib/common/src/generated/_Arrays.kt @@ -14,6 +14,8 @@ package kotlin.collections // import kotlin.random.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns 1st *element* from the collection. diff --git a/libraries/stdlib/common/src/generated/_Collections.kt b/libraries/stdlib/common/src/generated/_Collections.kt index e415d680bf8..215bd9967a7 100644 --- a/libraries/stdlib/common/src/generated/_Collections.kt +++ b/libraries/stdlib/common/src/generated/_Collections.kt @@ -14,6 +14,8 @@ package kotlin.collections // import kotlin.random.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns 1st *element* from the collection. diff --git a/libraries/stdlib/common/src/generated/_Maps.kt b/libraries/stdlib/common/src/generated/_Maps.kt index 16c9c8bd008..19c0c96a517 100644 --- a/libraries/stdlib/common/src/generated/_Maps.kt +++ b/libraries/stdlib/common/src/generated/_Maps.kt @@ -14,6 +14,8 @@ package kotlin.collections // import kotlin.random.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns a [List] containing all key-value pairs. diff --git a/libraries/stdlib/common/src/generated/_Sets.kt b/libraries/stdlib/common/src/generated/_Sets.kt index 57198d7d120..e9889814d31 100644 --- a/libraries/stdlib/common/src/generated/_Sets.kt +++ b/libraries/stdlib/common/src/generated/_Sets.kt @@ -14,6 +14,8 @@ package kotlin.collections // import kotlin.random.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns a set containing all elements of the original set except the given [element]. diff --git a/libraries/stdlib/common/src/generated/_UArrays.kt b/libraries/stdlib/common/src/generated/_UArrays.kt index aebd2efb0ec..de938e70223 100644 --- a/libraries/stdlib/common/src/generated/_UArrays.kt +++ b/libraries/stdlib/common/src/generated/_UArrays.kt @@ -15,6 +15,8 @@ package kotlin.collections // import kotlin.random.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns 1st *element* from the collection. diff --git a/libraries/stdlib/common/src/generated/_UCollections.kt b/libraries/stdlib/common/src/generated/_UCollections.kt index 860cf7ddec0..3ac002347a2 100644 --- a/libraries/stdlib/common/src/generated/_UCollections.kt +++ b/libraries/stdlib/common/src/generated/_UCollections.kt @@ -14,6 +14,8 @@ package kotlin.collections // import kotlin.random.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an array of UByte containing all of the elements of this collection. diff --git a/libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt b/libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt index 5cf88142882..0c8b7c962c0 100644 --- a/libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt +++ b/libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt @@ -13,6 +13,8 @@ package kotlin.collections import kotlin.js.* import primitiveArrayConcat import withType +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array. diff --git a/libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt b/libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt index ed367ad06e3..85bcb016ec9 100644 --- a/libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt +++ b/libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt @@ -11,6 +11,8 @@ package kotlin.collections // import kotlin.js.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Reverses elements in the list in-place. diff --git a/libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt b/libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt index ca9ddaaa72e..3ac8868bdd3 100644 --- a/libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt +++ b/libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt @@ -11,6 +11,8 @@ package kotlin.collections // import kotlin.js.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array. diff --git a/libraries/stdlib/js/src/generated/_ArraysJs.kt b/libraries/stdlib/js/src/generated/_ArraysJs.kt index 614c4816d3b..cd96519d669 100644 --- a/libraries/stdlib/js/src/generated/_ArraysJs.kt +++ b/libraries/stdlib/js/src/generated/_ArraysJs.kt @@ -13,6 +13,8 @@ package kotlin.collections import kotlin.js.* import primitiveArrayConcat import withType +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array. diff --git a/libraries/stdlib/js/src/generated/_CollectionsJs.kt b/libraries/stdlib/js/src/generated/_CollectionsJs.kt index ed367ad06e3..85bcb016ec9 100644 --- a/libraries/stdlib/js/src/generated/_CollectionsJs.kt +++ b/libraries/stdlib/js/src/generated/_CollectionsJs.kt @@ -11,6 +11,8 @@ package kotlin.collections // import kotlin.js.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Reverses elements in the list in-place. diff --git a/libraries/stdlib/js/src/generated/_UArraysJs.kt b/libraries/stdlib/js/src/generated/_UArraysJs.kt index ca9ddaaa72e..3ac8868bdd3 100644 --- a/libraries/stdlib/js/src/generated/_UArraysJs.kt +++ b/libraries/stdlib/js/src/generated/_UArraysJs.kt @@ -11,6 +11,8 @@ package kotlin.collections // import kotlin.js.* +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array. diff --git a/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt b/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt index 7270d9ea4ea..415858c6818 100644 --- a/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt @@ -13,6 +13,8 @@ package kotlin.collections // See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib // +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array. diff --git a/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt b/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt index b6265b99626..83935e674fb 100644 --- a/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt @@ -13,6 +13,8 @@ package kotlin.collections // See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib // +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns a list containing all elements that are instances of specified class. diff --git a/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt b/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt index 87f62962386..3f1f8ef9404 100644 --- a/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt @@ -14,6 +14,8 @@ package kotlin.collections // See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib // +import kotlin.ranges.contains +import kotlin.ranges.reversed /** * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array. diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt index 2d193f8658b..9de4faf33bb 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt @@ -103,6 +103,10 @@ fun List.writeTo(file: File, targetedSource: TargetedSourceFile) if (target.platform == Platform.Common) { writer.appendln("import kotlin.random.*") } + if (sourceFile.packageName == "kotlin.collections") { + writer.appendln("import kotlin.ranges.contains") + writer.appendln("import kotlin.ranges.reversed") + } writer.appendln()