summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-07-09 15:06:01 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-07-09 15:06:01 +0000
commit029482c86e4940bb47a195eea13d9f66faeb2c66 (patch)
treeff92f471a60311406e508de51f22ae63b81ed46f /src/library
parent0394b8426ff8ad41f0455c5318518d1a84540290 (diff)
downloadscala-029482c86e4940bb47a195eea13d9f66faeb2c66.tar.gz
scala-029482c86e4940bb47a195eea13d9f66faeb2c66.tar.bz2
scala-029482c86e4940bb47a195eea13d9f66faeb2c66.zip
Closes #3493. Review by extempore.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index a1d15c4b7d..a8cb2340ff 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -235,6 +235,12 @@ object ScalaRunTime {
*
*/
def stringOf(arg: Any): String = {
+ import collection.{SortedSet, SortedMap}
+ def mapTraversable(x: Traversable[_], f: Any => String) = x match {
+ case ss: SortedSet[_] => ss.map(f)
+ case ss: SortedMap[_, _] => ss.map(f)
+ case _ => x.map(f)
+ }
def inner(arg: Any): String = arg match {
case null => "null"
// Node extends NodeSeq extends Seq[Node] strikes again
@@ -252,7 +258,7 @@ object ScalaRunTime {
// exception if you call iterator. What a world.
// And they can't be infinite either.
if (x.getClass.getName startsWith "scala.tools.nsc.io") x.toString
- else (x map inner) mkString (x.stringPrefix + "(", ", ", ")")
+ else (mapTraversable(x, inner)) mkString (x.stringPrefix + "(", ", ", ")")
case x => x toString
}
val s = inner(arg)