summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2009-06-30 11:08:44 +0000
committerPhilipp Haller <hallerp@gmail.com>2009-06-30 11:08:44 +0000
commit211fcd601e09e44f5b308f698634b04c6c806eef (patch)
treef79e7c13a0e740a04ebed3f1f955ddc01c5e53bf /src/library
parent0464a24e406a636aecd517c1a1af9056f60efac0 (diff)
downloadscala-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.scala2
-rw-r--r--src/library/scala/collection/generic/VectorViewTemplate.scala5
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
+ }
}