summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/LinearSeqLike.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-09-17 00:16:33 +0000
committerPaul Phillips <paulp@improving.org>2010-09-17 00:16:33 +0000
commit99fb2b420f2fbf0eca5a98d0e52f8c6b580cd18f (patch)
treed86f3e56692a99769e88149a1eb4a621b968bf41 /src/library/scala/collection/LinearSeqLike.scala
parent4fe2d213ce613cf88d30b7ff1285cd74d4e32942 (diff)
downloadscala-99fb2b420f2fbf0eca5a98d0e52f8c6b580cd18f.tar.gz
scala-99fb2b420f2fbf0eca5a98d0e52f8c6b580cd18f.tar.bz2
scala-99fb2b420f2fbf0eca5a98d0e52f8c6b580cd18f.zip
Does what can probably be done about strange it...
Does what can probably be done about strange iterator exhaustion behavior. Maybe we should start thinking about iteratees... Closes #3760, no review.
Diffstat (limited to 'src/library/scala/collection/LinearSeqLike.scala')
-rw-r--r--src/library/scala/collection/LinearSeqLike.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/library/scala/collection/LinearSeqLike.scala b/src/library/scala/collection/LinearSeqLike.scala
index c2c4996f47..8bf45348db 100644
--- a/src/library/scala/collection/LinearSeqLike.scala
+++ b/src/library/scala/collection/LinearSeqLike.scala
@@ -56,6 +56,14 @@ trait LinearSeqLike[+A, +Repr <: LinearSeqLike[A, Repr]] extends SeqLike[A, Repr
if (hasNext) {
val result = these.head; these = these.tail; result
} else Iterator.empty.next
- override def toList: List[A] = these.toList
+
+ /** Have to clear these so the iterator is exhausted like
+ * it would be without the optimization.
+ */
+ override def toList: List[A] = {
+ val xs = these.toList
+ these = newBuilder.result
+ xs
+ }
}
}