diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/collection/TraversableViewLike.scala | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/library/scala/collection/TraversableViewLike.scala b/src/library/scala/collection/TraversableViewLike.scala index ad5e3d3240..5ca038fd2e 100644 --- a/src/library/scala/collection/TraversableViewLike.scala +++ b/src/library/scala/collection/TraversableViewLike.scala @@ -28,8 +28,16 @@ trait ViewMkString[+A] { override def mkString(start: String, sep: String, end: String): String = { thisSeq.addString(new StringBuilder(), start, sep, end).toString } - override def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder = - b append start append "..." append end + override def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder = { + var first = true + b append start + for (x <- self) { + if (first) first = false else b append sep + b append x + } + b append end + b + } } /** A template trait for non-strict views of traversable collections. @@ -41,17 +49,17 @@ trait ViewMkString[+A] { * that takes a `View` as its `From` type parameter must yield the same view (or a generic * superclass of it) as its result parameter. If that assumption is broken, cast errors might result. * - * @define viewInfo + * @define viewInfo * A view is a lazy version of some collection. Collection transformers such as * `map` or `filter` or `++` do not traverse any elements when applied on a view. * Instead they create a new view which simply records that fact that the operation * needs to be applied. The collection elements are accessed, and the view operations are applied, * when a non-view result is needed, or when the `force` method is called on a view. - * @define traversableViewInfo + * @define traversableViewInfo * $viewInfo * * All views for traversable collections are defined by creating a new `foreach` method. - + * * @author Martin Odersky * @version 2.8 * @since 2.8 |