Rewrite MutableList.sortWith to suppress warning instead of error
Use available naturalOrder comparator in MutableList.sort()
This commit is contained in:
committed by
Vasily Levchenko
parent
d74384db18
commit
58000a20fd
@@ -5,14 +5,12 @@
|
|||||||
|
|
||||||
package kotlin.collections
|
package kotlin.collections
|
||||||
|
|
||||||
import kotlin.comparisons.*
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sorts elements in the list in-place according to their natural sort order.
|
* Sorts elements in the list in-place according to their natural sort order.
|
||||||
*
|
*
|
||||||
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
|
* The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.
|
||||||
*/
|
*/
|
||||||
public actual fun <T : Comparable<T>> MutableList<T>.sort(): Unit = sortWith(Comparator<T> { a: T, b: T -> a.compareTo(b) })
|
public actual fun <T : Comparable<T>> MutableList<T>.sort(): Unit = sortWith(naturalOrder())
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sorts elements in the list in-place according to the order specified with [comparator].
|
* Sorts elements in the list in-place according to the order specified with [comparator].
|
||||||
@@ -22,7 +20,7 @@ public actual fun <T : Comparable<T>> MutableList<T>.sort(): Unit = sortWith(Com
|
|||||||
public actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>): Unit {
|
public actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>): Unit {
|
||||||
if (size > 1) {
|
if (size > 1) {
|
||||||
val it = listIterator()
|
val it = listIterator()
|
||||||
val sortedArray = @Suppress("TYPE_PARAMETER_AS_REIFIED") toTypedArray().apply { sortWith(comparator) }
|
val sortedArray = @Suppress("UNCHECKED_CAST") (toTypedArray<Any?>() as Array<T>).apply { sortWith(comparator) }
|
||||||
for (v in sortedArray) {
|
for (v in sortedArray) {
|
||||||
it.next()
|
it.next()
|
||||||
it.set(v)
|
it.set(v)
|
||||||
|
|||||||
Reference in New Issue
Block a user