summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-03-29 09:30:31 +1000
committerJason Zaugg <jzaugg@gmail.com>2016-03-29 09:37:17 +1000
commitca606e6943c405e487c54c3fd14a3a8ac917bb2e (patch)
treefb2e9cc8676de36662cd3d29a5e625939376e910
parent43b3042517bf4aa9b22c22547433cc6c2c24d7d1 (diff)
downloadscala-ca606e6943c405e487c54c3fd14a3a8ac917bb2e.tar.gz
scala-ca606e6943c405e487c54c3fd14a3a8ac917bb2e.tar.bz2
scala-ca606e6943c405e487c54c3fd14a3a8ac917bb2e.zip
Delegate more primitive comparison to the Java stdlib
The API for doing so efficiently was made regular in Java 1.8.
-rw-r--r--src/library/scala/math/Ordering.scala22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/library/scala/math/Ordering.scala b/src/library/scala/math/Ordering.scala
index 827cccc77e..37096d5ed0 100644
--- a/src/library/scala/math/Ordering.scala
+++ b/src/library/scala/math/Ordering.scala
@@ -224,42 +224,32 @@ object Ordering extends LowPriorityOrderingImplicits {
implicit object Unit extends UnitOrdering
trait BooleanOrdering extends Ordering[Boolean] {
- def compare(x: Boolean, y: Boolean) = (x, y) match {
- case (false, true) => -1
- case (true, false) => 1
- case _ => 0
- }
+ def compare(x: Boolean, y: Boolean) = java.lang.Boolean.compare(x, y)
}
implicit object Boolean extends BooleanOrdering
trait ByteOrdering extends Ordering[Byte] {
- def compare(x: Byte, y: Byte) = x.toInt - y.toInt
+ def compare(x: Byte, y: Byte) = java.lang.Byte.compare(x, y)
}
implicit object Byte extends ByteOrdering
trait CharOrdering extends Ordering[Char] {
- def compare(x: Char, y: Char) = x.toInt - y.toInt
+ def compare(x: Char, y: Char) = java.lang.Character.compare(x, y)
}
implicit object Char extends CharOrdering
trait ShortOrdering extends Ordering[Short] {
- def compare(x: Short, y: Short) = x.toInt - y.toInt
+ def compare(x: Short, y: Short) = java.lang.Short.compare(x, y)
}
implicit object Short extends ShortOrdering
trait IntOrdering extends Ordering[Int] {
- def compare(x: Int, y: Int) =
- if (x < y) -1
- else if (x == y) 0
- else 1
+ def compare(x: Int, y: Int) = java.lang.Integer.compare(x, y)
}
implicit object Int extends IntOrdering
trait LongOrdering extends Ordering[Long] {
- def compare(x: Long, y: Long) =
- if (x < y) -1
- else if (x == y) 0
- else 1
+ def compare(x: Long, y: Long) = java.lang.Long.compare(x, y)
}
implicit object Long extends LongOrdering