diff options
author | Philipp Haller <hallerp@gmail.com> | 2009-06-30 11:08:44 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2009-06-30 11:08:44 +0000 |
commit | 211fcd601e09e44f5b308f698634b04c6c806eef (patch) | |
tree | f79e7c13a0e740a04ebed3f1f955ddc01c5e53bf /src/library | |
parent | 0464a24e406a636aecd517c1a1af9056f60efac0 (diff) | |
download | scala-211fcd601e09e44f5b308f698634b04c6c806eef.tar.gz scala-211fcd601e09e44f5b308f698634b04c6c806eef.tar.bz2 scala-211fcd601e09e44f5b308f698634b04c6c806eef.zip |
Applied patches to fix the issues in #2074.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/generic/SequenceViewTemplate.scala | 2 | ||||
-rw-r--r-- | src/library/scala/collection/generic/VectorViewTemplate.scala | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/library/scala/collection/generic/SequenceViewTemplate.scala b/src/library/scala/collection/generic/SequenceViewTemplate.scala index cd67b81d26..4fb918628d 100644 --- a/src/library/scala/collection/generic/SequenceViewTemplate.scala +++ b/src/library/scala/collection/generic/SequenceViewTemplate.scala @@ -112,7 +112,7 @@ trait SequenceViewTemplate[+A, protected[this] val from: Int protected[this] val patch: Sequence[B] protected[this] val replaced: Int - private val plen = patch.length + private lazy val plen = patch.length override def iterator: Iterator[B] = self.iterator patch (from, patch.iterator, replaced) override def length: Int = self.length + plen - replaced override def apply(idx: Int): B = diff --git a/src/library/scala/collection/generic/VectorViewTemplate.scala b/src/library/scala/collection/generic/VectorViewTemplate.scala index f25c4a949e..a8dcc05180 100644 --- a/src/library/scala/collection/generic/VectorViewTemplate.scala +++ b/src/library/scala/collection/generic/VectorViewTemplate.scala @@ -64,6 +64,8 @@ trait VectorViewTemplate[+A, override def foreach[U](f: B => U) = super[Transformed].foreach(f) } + trait Zipped[B] extends Transformed[(A, B)] with super.Zipped[B] + /** Boilerplate method, to override in each subclass * This method could be eliminated if Scala had virtual classes */ @@ -78,4 +80,7 @@ trait VectorViewTemplate[+A, protected override def newPatched[B >: A](_from: Int, _patch: Sequence[B], _replaced: Int): Transformed[B] = new Patched[B] { val from = _from; val patch = _patch; val replaced = _replaced } + protected override def newZipped[B](that: Sequence[B]): Transformed[(A, B)] = new Zipped[B] { + val other = that + } } |