diff options
author | Martin Odersky <odersky@gmail.com> | 2011-07-07 15:16:44 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-07-07 15:16:44 +0000 |
commit | ce89d436b83011c1337b101755f63e1a67673a32 (patch) | |
tree | d55e872ba645c7ebcc4be6146536f65f1f1236ea /src | |
parent | 262114974bfab763b282bf0aa2ec5b902fdd69f5 (diff) | |
download | scala-ce89d436b83011c1337b101755f63e1a67673a32.tar.gz scala-ce89d436b83011c1337b101755f63e1a67673a32.tar.bz2 scala-ce89d436b83011c1337b101755f63e1a67673a32.zip |
Made scratchpad use replToString.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala | 7 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/scratchpad/Executor.scala | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala b/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala index 1c7a8523eb..34a0a4abb6 100644 --- a/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala +++ b/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala @@ -51,6 +51,9 @@ trait ScratchPadMaker { self: Global => private def addSandbox(expr: Tree) = {} // patches += (Patch(expr.pos.start, "sandbox("), Patch(expr.pos.end, ")")) + private def resultString(prefix: String, expr: String) = + literal(prefix + " = ") + " + $show(" + expr + ")" + private def traverseStat(stat: Tree) = if (stat.pos.isInstanceOf[RangePosition]) { stat match { @@ -60,7 +63,7 @@ trait ScratchPadMaker { self: Global => toPrint += literal(nameType(stat.symbol) + " = <lazy>") else if (!stat.symbol.isSynthetic) { addSandbox(rhs) - toPrint += literal(nameType(stat.symbol) + " = ") + " + " + stat.symbol.name + toPrint += resultString(nameType(stat.symbol), stat.symbol.name.toString) } case DefDef(_, _, _, _, _, _) => addSkip(stat) @@ -79,7 +82,7 @@ trait ScratchPadMaker { self: Global => val dispResName = resName filter ('$' !=) patches += Patch(stat.pos.start, "val " + resName + " = ") addSandbox(stat) - toPrint += literal(nameType(dispResName, stat.tpe) + " = ") + " + " + resName + toPrint += resultString(nameType(dispResName, stat.tpe), resName) } } } diff --git a/src/compiler/scala/tools/nsc/scratchpad/Executor.scala b/src/compiler/scala/tools/nsc/scratchpad/Executor.scala index 8eead4f296..d45e80ed1a 100644 --- a/src/compiler/scala/tools/nsc/scratchpad/Executor.scala +++ b/src/compiler/scala/tools/nsc/scratchpad/Executor.scala @@ -1,6 +1,7 @@ package scala.tools.nsc.scratchpad import java.io.{PrintStream, OutputStreamWriter, Writer} +import scala.runtime.ScalaRunTime.replStringOf import java.lang.reflect.InvocationTargetException object Executor { @@ -55,6 +56,8 @@ object Executor { def $skip(n: Int) = currentWriter.skip(n) def $stop() = throw new StopException + + def $show(x: Any): String = replStringOf(x, scala.Int.MaxValue) } class StopException extends Exception |