summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/immutable/StreamViewLike.scala
diff options
context:
space:
mode:
authorRex Kerr <ichoran@gmail.com>2014-11-23 18:28:05 -0800
committerRex Kerr <ichoran@gmail.com>2014-12-06 13:57:40 -0800
commitff1b66744381240c5037be8f9a447cf28a3074be (patch)
tree09b73f9b7418388771eeb84865c986c7c65f8154 /src/library/scala/collection/immutable/StreamViewLike.scala
parentf13fc65f38821dd06da35c488f2be89efec20a4c (diff)
downloadscala-ff1b66744381240c5037be8f9a447cf28a3074be.tar.gz
scala-ff1b66744381240c5037be8f9a447cf28a3074be.tar.bz2
scala-ff1b66744381240c5037be8f9a447cf28a3074be.zip
SI-8691 SeqView throws exception when prepending a collection
Prepend was throwing segfaults as it was handled differently from Append. This brings the two into line with each other. There are various optimizations that could be applied that have not been, however, such as intercepting sequential prepends and generating one multi-prepend instead of nested single-element prepends. Unit test added to verify minimally that bug is gone.
Diffstat (limited to 'src/library/scala/collection/immutable/StreamViewLike.scala')
-rw-r--r--src/library/scala/collection/immutable/StreamViewLike.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/library/scala/collection/immutable/StreamViewLike.scala b/src/library/scala/collection/immutable/StreamViewLike.scala
index c2eb85815d..4d7eaeff2a 100644
--- a/src/library/scala/collection/immutable/StreamViewLike.scala
+++ b/src/library/scala/collection/immutable/StreamViewLike.scala
@@ -53,6 +53,7 @@ extends SeqView[A, Coll]
/** boilerplate */
protected override def newForced[B](xs: => scala.collection.GenSeq[B]): Transformed[B] = new { val forced = xs } with AbstractTransformed[B] with Forced[B]
protected override def newAppended[B >: A](that: scala.collection.GenTraversable[B]): Transformed[B] = new { val rest = that } with AbstractTransformed[B] with Appended[B]
+ protected override def newPrepended[B >: A](that: scala.collection.GenTraversable[B]): Transformed[B] = new { protected[this] val fst = that } with AbstractTransformed[B] with Prepended[B]
protected override def newMapped[B](f: A => B): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with Mapped[B]
protected override def newFlatMapped[B](f: A => scala.collection.GenTraversableOnce[B]): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with FlatMapped[B]
protected override def newFiltered(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
@@ -67,7 +68,6 @@ extends SeqView[A, Coll]
protected override def newPatched[B >: A](_from: Int, _patch: scala.collection.GenSeq[B], _replaced: Int): Transformed[B] = {
new { val from = _from; val patch = _patch; val replaced = _replaced } with AbstractTransformed[B] with Patched[B]
}
- protected override def newPrepended[B >: A](elem: B): Transformed[B] = new { protected[this] val fst = elem } with AbstractTransformed[B] with Prepended[B]
override def stringPrefix = "StreamView"
}