diff options
author | Paul Phillips <paulp@improving.org> | 2009-11-27 13:28:45 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-11-27 13:28:45 +0000 |
commit | bc5eb3e511489e5e24fcc016a907ac7f32ca6184 (patch) | |
tree | 952193af2fbe152f084ce337910c895e547cca6c /src | |
parent | 252ebb328144c843266264ad40b59634685cb4cf (diff) | |
download | scala-bc5eb3e511489e5e24fcc016a907ac7f32ca6184.tar.gz scala-bc5eb3e511489e5e24fcc016a907ac7f32ca6184.tar.bz2 scala-bc5eb3e511489e5e24fcc016a907ac7f32ca6184.zip |
Performance improvement on Ordering.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/math/Ordering.scala | 5 |
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] { |