summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-11-27 13:28:45 +0000
committerPaul Phillips <paulp@improving.org>2009-11-27 13:28:45 +0000
commitbc5eb3e511489e5e24fcc016a907ac7f32ca6184 (patch)
tree952193af2fbe152f084ce337910c895e547cca6c /src/library
parent252ebb328144c843266264ad40b59634685cb4cf (diff)
downloadscala-bc5eb3e511489e5e24fcc016a907ac7f32ca6184.tar.gz
scala-bc5eb3e511489e5e24fcc016a907ac7f32ca6184.tar.bz2
scala-bc5eb3e511489e5e24fcc016a907ac7f32ca6184.zip
Performance improvement on Ordering.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/math/Ordering.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/library/scala/math/Ordering.scala b/src/library/scala/math/Ordering.scala
index 3eeebc8aea..2596770d2e 100644
--- a/src/library/scala/math/Ordering.scala
+++ b/src/library/scala/math/Ordering.scala
@@ -126,6 +126,11 @@ object Ordering extends LowPriorityOrderingImplicits {
def fromLessThan[T](cmp: (T, T) => Boolean): Ordering[T] = new Ordering[T] {
def compare(x: T, y: T) = if (cmp(x, y)) -1 else if (cmp(y, x)) 1 else 0
+ // overrides to avoid multiple comparisons
+ override def lt(x: T, y: T): Boolean = cmp(x, y)
+ override def gt(x: T, y: T): Boolean = cmp(y, x)
+ override def gteq(x: T, y: T): Boolean = !cmp(x, y)
+ override def lteq(x: T, y: T): Boolean = !cmp(y, x)
}
trait UnitOrdering extends Ordering[Unit] {