diff options
-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)) + } +} |