diff options
author | Paul Phillips <paulp@improving.org> | 2010-02-21 05:01:55 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-02-21 05:01:55 +0000 |
commit | 18aa7f0c8075ed543c108d99eeb10a974c3d0296 (patch) | |
tree | 0604200b3470410cdeaf75c2bc2751d7c189e669 /src/library | |
parent | 3bc73c1e1a02dc225f8723591e6d4427172478be (diff) | |
download | scala-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.scala | 27 |
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" } } |