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