summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-08-27 18:01:40 +0000
committerPaul Phillips <paulp@improving.org>2011-08-27 18:01:40 +0000
commit649b4262c4483f12ec4d82549b9860e2f88d33b8 (patch)
tree6cd9e426471e7827223589717d6ae51c54884bc1
parent3efce112b5759c04566055b8418261d13e474e1e (diff)
downloadscala-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.scala3
-rw-r--r--test/files/run/t4930.check2
-rw-r--r--test/files/run/t4930.scala11
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))
+ }
+}