diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-07-09 15:06:01 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-07-09 15:06:01 +0000 |
commit | 029482c86e4940bb47a195eea13d9f66faeb2c66 (patch) | |
tree | ff92f471a60311406e508de51f22ae63b81ed46f /src | |
parent | 0394b8426ff8ad41f0455c5318518d1a84540290 (diff) | |
download | scala-029482c86e4940bb47a195eea13d9f66faeb2c66.tar.gz scala-029482c86e4940bb47a195eea13d9f66faeb2c66.tar.bz2 scala-029482c86e4940bb47a195eea13d9f66faeb2c66.zip |
Closes #3493. Review by extempore.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/runtime/ScalaRunTime.scala | 8 |
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) |