summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-07-22 20:04:13 +0000
committerPaul Phillips <paulp@improving.org>2009-07-22 20:04:13 +0000
commit9eed5b8929644df84dcae3dae91238683c95ef86 (patch)
tree3600358002bd5a3a4d41b123c7db0a11ba16bbc4
parentfa70f512342aab6767c8a8fa59ec39b98d8640e2 (diff)
downloadscala-9eed5b8929644df84dcae3dae91238683c95ef86.tar.gz
scala-9eed5b8929644df84dcae3dae91238683c95ef86.tar.bz2
scala-9eed5b8929644df84dcae3dae91238683c95ef86.zip
Fix and test cases for #2184.
-rw-r--r--src/library/scala/collection/generic/TraversableViewTemplate.scala2
-rw-r--r--test/files/run/takeAndDrop.scala14
2 files changed, 15 insertions, 1 deletions
diff --git a/src/library/scala/collection/generic/TraversableViewTemplate.scala b/src/library/scala/collection/generic/TraversableViewTemplate.scala
index 84d5b9d0b3..ec18eca433 100644
--- a/src/library/scala/collection/generic/TraversableViewTemplate.scala
+++ b/src/library/scala/collection/generic/TraversableViewTemplate.scala
@@ -67,7 +67,7 @@ self =>
}
override def stringPrefix = self.stringPrefix+"S"
override def slice(from1: Int, until1: Int): This =
- newSliced(from + (from1 max 0), from + (until1 max 0)).asInstanceOf[This]
+ newSliced(from1 max 0, until1 max 0).asInstanceOf[This]
}
trait Mapped[B] extends Transformed[B] {
diff --git a/test/files/run/takeAndDrop.scala b/test/files/run/takeAndDrop.scala
new file mode 100644
index 0000000000..896923ddc1
--- /dev/null
+++ b/test/files/run/takeAndDrop.scala
@@ -0,0 +1,14 @@
+object Test {
+ def main(args: Array[String]): Unit = {
+ val range = 1 to 10
+ val target = (3 to 8).toList
+ val confirm = (xs: Seq[Int]) => assert(xs.toList == target)
+
+ confirm(range drop 2 dropRight 2)
+ confirm(range drop 1 dropRight 1 drop 1 dropRight 1)
+ confirm(range take 8 drop 2)
+ confirm(range takeRight 8 dropRight 2)
+ confirm(range drop 2 take 6)
+ confirm(range dropRight 1 take 8 takeRight 7 drop 1)
+ }
+}