diff options
author | Paul Phillips <paulp@improving.org> | 2011-08-27 18:01:40 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-08-27 18:01:40 +0000 |
commit | 649b4262c4483f12ec4d82549b9860e2f88d33b8 (patch) | |
tree | 6cd9e426471e7827223589717d6ae51c54884bc1 | |
parent | 3efce112b5759c04566055b8418261d13e474e1e (diff) | |
download | scala-649b4262c4483f12ec4d82549b9860e2f88d33b8.tar.gz scala-649b4262c4483f12ec4d82549b9860e2f88d33b8.tar.bz2 scala-649b4262c4483f12ec4d82549b9860e2f88d33b8.zip |
Fixed bug in Sorted "to" not using the ordering.
-rw-r--r-- | src/library/scala/collection/generic/Sorted.scala | 3 | ||||
-rw-r--r-- | test/files/run/t4930.check | 2 | ||||
-rw-r--r-- | test/files/run/t4930.scala | 11 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/library/scala/collection/generic/Sorted.scala b/src/library/scala/collection/generic/Sorted.scala index 7a3a220683..ed9e11fd30 100644 --- a/src/library/scala/collection/generic/Sorted.scala +++ b/src/library/scala/collection/generic/Sorted.scala @@ -71,11 +71,10 @@ trait Sorted[K, +This <: Sorted[K, This]] { * @param to The upper-bound (inclusive) of the ranged projection. */ def to(to: K): This = { - // tough! val i = keySet.from(to).iterator if (i.isEmpty) return repr val next = i.next - if (next == to) + if (compare(next, to) == 0) if (i.isEmpty) repr else until(i.next) else diff --git a/test/files/run/t4930.check b/test/files/run/t4930.check new file mode 100644 index 0000000000..a58efd4685 --- /dev/null +++ b/test/files/run/t4930.check @@ -0,0 +1,2 @@ +List(1) +List(1) diff --git a/test/files/run/t4930.scala b/test/files/run/t4930.scala new file mode 100644 index 0000000000..775f627948 --- /dev/null +++ b/test/files/run/t4930.scala @@ -0,0 +1,11 @@ +import collection.immutable.SortedMap + +object Test { + implicit val ord: Ordering[Array[Byte]] = Ordering.by((_: Array[Byte]).toIterable) + + def main(args: Array[String]): Unit = { + val m = SortedMap(Array[Byte](1) -> 0) + println(m.to(Array[Byte](1)) flatMap (_._1.mkString)) + println(m.from(Array[Byte](1)) flatMap (_._1.mkString)) + } +} |