summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/TraversableViewLike.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-02-25 19:46:52 +0000
committerPaul Phillips <paulp@improving.org>2011-02-25 19:46:52 +0000
commit34d3f1cb95b1cc0fba242296026e546366c483d9 (patch)
tree2007c4f9d36eb4e1c4bc24cbf02577ef0db548d3 /src/library/scala/collection/TraversableViewLike.scala
parent49e8a4eef6d2e650f80f4e4817973102d1ea6335 (diff)
downloadscala-34d3f1cb95b1cc0fba242296026e546366c483d9.tar.gz
scala-34d3f1cb95b1cc0fba242296026e546366c483d9.tar.bz2
scala-34d3f1cb95b1cc0fba242296026e546366c483d9.zip
Made mkString work correctly on views.
about how to obtain a String and how not to. Closes #4297, no review.
Diffstat (limited to 'src/library/scala/collection/TraversableViewLike.scala')
-rw-r--r--src/library/scala/collection/TraversableViewLike.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/library/scala/collection/TraversableViewLike.scala b/src/library/scala/collection/TraversableViewLike.scala
index 0c01cb893e..8d94a7f381 100644
--- a/src/library/scala/collection/TraversableViewLike.scala
+++ b/src/library/scala/collection/TraversableViewLike.scala
@@ -200,9 +200,19 @@ self =>
buf.result
}
+ // Have to overload all three to work around #4299. The overload
+ // is because mkString should force a view but toString should not.
+ override def mkString: String = mkString("")
+ override def mkString(sep: String): String = mkString("", sep, "")
+ 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 toString = stringPrefix+"(...)"
+
override def filter(p: A => Boolean): This = newFiltered(p).asInstanceOf[This]
override def withFilter(p: A => Boolean): This = newFiltered(p).asInstanceOf[This]
override def partition(p: A => Boolean): (This, This) = (filter(p), filter(!p(_)))