diff --git a/libraries/stdlib/src/generated/_Ordering.kt b/libraries/stdlib/src/generated/_Ordering.kt index 1c06521a4ca..e8749f9259a 100644 --- a/libraries/stdlib/src/generated/_Ordering.kt +++ b/libraries/stdlib/src/generated/_Ordering.kt @@ -14,6 +14,8 @@ import java.util.Collections // TODO: it's temporary while we have java.util.Col * Returns a list with elements in reversed order. */ public fun Array.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -23,6 +25,8 @@ public fun Array.reverse(): List { * Returns a list with elements in reversed order. */ public fun BooleanArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -32,6 +36,8 @@ public fun BooleanArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun ByteArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -41,6 +47,8 @@ public fun ByteArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun CharArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -50,6 +58,8 @@ public fun CharArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun DoubleArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -59,6 +69,8 @@ public fun DoubleArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun FloatArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -68,6 +80,8 @@ public fun FloatArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun IntArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -77,6 +91,8 @@ public fun IntArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun LongArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -86,6 +102,8 @@ public fun LongArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun ShortArray.reverse(): List { + if (isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list @@ -95,6 +113,8 @@ public fun ShortArray.reverse(): List { * Returns a list with elements in reversed order. */ public fun Iterable.reverse(): List { + if (this is Collection<*> && isEmpty()) + return emptyList() val list = toArrayList() Collections.reverse(list) return list diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt index 02206b18a89..c81826bfc14 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Ordering.kt @@ -10,6 +10,16 @@ fun ordering(): List { returns { "List" } body { """ + if (this is Collection<*> && isEmpty()) return emptyList() + val list = toArrayList() + Collections.reverse(list) + return list + """ + } + + body(ArraysOfObjects, ArraysOfPrimitives) { + """ + if (isEmpty()) return emptyList() val list = toArrayList() Collections.reverse(list) return list