summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-02-21 05:01:55 +0000
committerPaul Phillips <paulp@improving.org>2010-02-21 05:01:55 +0000
commit18aa7f0c8075ed543c108d99eeb10a974c3d0296 (patch)
tree0604200b3470410cdeaf75c2bc2751d7c189e669 /src/library
parent3bc73c1e1a02dc225f8723591e6d4427172478be (diff)
downloadscala-18aa7f0c8075ed543c108d99eeb10a974c3d0296.tar.gz
scala-18aa7f0c8075ed543c108d99eeb10a974c3d0296.tar.bz2
scala-18aa7f0c8075ed543c108d99eeb10a974c3d0296.zip
Some repl cleanups and debugging conveniences.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index 07da120399..a26d6b09bd 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -187,16 +187,21 @@ object ScalaRunTime {
* @return a string representation of <code>arg</code>
*
*/
- def stringOf(arg: Any): String = arg match {
- case null => "null"
- // Node extends NodeSeq extends Seq[Node] strikes again
- case x: Node => x toString
- case x: AnyRef if isArray(x) => WrappedArray make x map stringOf mkString ("Array(", ", ", ")")
- case x: Traversable[_] =>
- // Some subclasses of AbstractFile implement Iterable, then throw an
- // exception if you call iterator. What a world.
- if (x.getClass.getName startsWith "scala.tools.nsc.io") x.toString
- else x map stringOf mkString (x.stringPrefix + "(", ", ", ")")
- case x => x toString
+ def stringOf(arg: Any): String = {
+ def inner(arg: Any): String = arg match {
+ case null => "null"
+ // Node extends NodeSeq extends Seq[Node] strikes again
+ case x: Node => x toString
+ case x: AnyRef if isArray(x) => WrappedArray make x map inner mkString ("Array(", ", ", ")")
+ case x: Traversable[_] =>
+ // Some subclasses of AbstractFile implement Iterable, then throw an
+ // exception if you call iterator. What a world.
+ if (x.getClass.getName startsWith "scala.tools.nsc.io") x.toString
+ else x map inner mkString (x.stringPrefix + "(", ", ", ")")
+ case x => x toString
+ }
+ val s = inner(arg)
+ val nl = if (s contains "\n") "\n" else ""
+ nl + s + "\n"
}
}