diff --git a/libraries/stdlib/src/kotlin/Ordering.kt b/libraries/stdlib/src/kotlin/Ordering.kt index eec34219129..25e7fa95d32 100644 --- a/libraries/stdlib/src/kotlin/Ordering.kt +++ b/libraries/stdlib/src/kotlin/Ordering.kt @@ -15,7 +15,7 @@ inline fun compareBy(a: T?, b: T?, vararg functions: Function1): In val v1 = fn(a) val v2 = fn(b) val diff = compareValues(v1, v2) - if (diff != null) return diff + if (diff != 0) return diff } return 0 } @@ -26,6 +26,7 @@ inline fun compareBy(a: T?, b: T?, vararg functions: Function1): In * the [[#hashCode()]] method is used as the difference */ public inline fun compareValues(a: T?, b: T?): Int { + if (a === b) return 0 if (a == null) return - 1 if (b == null) return 1 if (a is Comparable) {