summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library/scala/collection/mutable/IndexedSeqView.scala2
-rw-r--r--test/files/run/arrayview.scala11
2 files changed, 11 insertions, 2 deletions
diff --git a/src/library/scala/collection/mutable/IndexedSeqView.scala b/src/library/scala/collection/mutable/IndexedSeqView.scala
index 15306b727a..84b87490fd 100644
--- a/src/library/scala/collection/mutable/IndexedSeqView.scala
+++ b/src/library/scala/collection/mutable/IndexedSeqView.scala
@@ -38,13 +38,11 @@ self =>
trait Transformed[B] extends IndexedSeqView[B, Coll] with super.Transformed[B] {
def update(idx: Int, elem: B): Unit
- override def length = self.length
override def toString = viewToString
}
// pre: until <= self.length
trait Sliced extends super.Sliced with Transformed[A] {
- override def length = endpoints.width
def update(idx: Int, elem: A) =
if (idx + from < until) self.update(idx + from, elem)
else throw new IndexOutOfBoundsException(idx.toString)
diff --git a/test/files/run/arrayview.scala b/test/files/run/arrayview.scala
new file mode 100644
index 0000000000..97e840f5e9
--- /dev/null
+++ b/test/files/run/arrayview.scala
@@ -0,0 +1,11 @@
+object Test {
+ def f = (1 to 100).toArray.view
+
+ def main(args: Array[String]): Unit = {
+ val xs = (f filter (_ < 50)).reverse.filter(_ % 2 == 0).map(_ / 2).flatMap(x => Array(1, x))
+ assert(xs.size == 48)
+ val ys = xs.toArray
+ assert(ys.size == 48)
+ assert(xs.sum == ys.sum)
+ }
+}