diff options
author | Paul Phillips <paulp@improving.org> | 2011-05-28 23:28:11 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-05-28 23:28:11 +0000 |
commit | 3adaa37cd2fc40deeb58ce9da9015f329d9c254e (patch) | |
tree | 3ce10b5e509c4239d197a7b3123d9b59df6d1f8f /src | |
parent | d76dc724e319663b6f854ecade8524323a576ea8 (diff) | |
download | scala-3adaa37cd2fc40deeb58ce9da9015f329d9c254e.tar.gz scala-3adaa37cd2fc40deeb58ce9da9015f329d9c254e.tar.bz2 scala-3adaa37cd2fc40deeb58ce9da9015f329d9c254e.zip |
Yikes, prependToList was violating List immutab...
Yikes, prependToList was violating List immutability. Closes #4656, no
review.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/collection/mutable/ListBuffer.scala | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala index 6a75108dfb..f1271627c1 100644 --- a/src/library/scala/collection/mutable/ListBuffer.scala +++ b/src/library/scala/collection/mutable/ListBuffer.scala @@ -245,9 +245,14 @@ final class ListBuffer[A] * * @param xs the list to which elements are prepended */ - def prependToList(xs: List[A]): List[A] = + def prependToList(xs: List[A]): List[A] = { if (start.isEmpty) xs - else { last0.tl = xs; toList } + else { + if (exported) copy() + last0.tl = xs + toList + } + } // Overrides of methods in Buffer |