From 0514ddc719d50ae79f64749fe4d6e3bc86d02f60 Mon Sep 17 00:00:00 2001 From: Erokhin Stanislav Date: Thu, 30 May 2013 17:09:31 +0400 Subject: [PATCH] fix Iterable.toSortedList --- libraries/stdlib/src/kotlin/IterablesSpecial.kt | 10 ++++++++++ libraries/stdlib/src/kotlin/JUtil.kt | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/src/kotlin/IterablesSpecial.kt b/libraries/stdlib/src/kotlin/IterablesSpecial.kt index 62aff9516be..92abbab4362 100644 --- a/libraries/stdlib/src/kotlin/IterablesSpecial.kt +++ b/libraries/stdlib/src/kotlin/IterablesSpecial.kt @@ -75,3 +75,13 @@ public inline fun Iterable.sort(comparator: java.util.Comparator) : Li java.util.Collections.sort(list, comparator) return list } + +public inline fun Iterable.sort(compare: (T, T) -> Int): List { + return sort( + object : java.util.Comparator { + public override fun compare(o1: T, o2: T): Int { + return compare.invoke(o1, o2) + } + } + ) +} \ No newline at end of file diff --git a/libraries/stdlib/src/kotlin/JUtil.kt b/libraries/stdlib/src/kotlin/JUtil.kt index fc015040ae4..400fb43963c 100644 --- a/libraries/stdlib/src/kotlin/JUtil.kt +++ b/libraries/stdlib/src/kotlin/JUtil.kt @@ -27,7 +27,7 @@ public inline fun Collection?.orEmpty() : Collection /** TODO these functions don't work when they generate the Array versions when they are in JLIterables */ public inline fun > Iterable.toSortedList() : List = toCollection(ArrayList()).sort() -public inline fun > Iterable.toSortedList(comparator: java.util.Comparator) : List = toList().sort(comparator) +public inline fun Iterable.toSortedList(compare: (T, T) -> Int) : List = toList().sort(compare) // List APIs