diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2012-09-26 06:06:39 -0700 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2012-09-26 06:06:39 -0700 |
commit | d5302c748fc31680d5a8140898106629057b46ad (patch) | |
tree | d377b25e3f08326c67c46d862f5e26bb68610ed3 | |
parent | 5691373feb3a99d5429dedfaec994d6421b3286f (diff) | |
parent | 092eac75a25dc09734c940adb962d62eebfeeaa0 (diff) | |
download | scala-d5302c748fc31680d5a8140898106629057b46ad.tar.gz scala-d5302c748fc31680d5a8140898106629057b46ad.tar.bz2 scala-d5302c748fc31680d5a8140898106629057b46ad.zip |
Merge pull request #1388 from odersky/topic/instrumenter
Fixed instrumentation code so that it can deal with:
-rw-r--r-- | src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala b/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala index dfbbb6ff88..7d332d9f7f 100644 --- a/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala +++ b/src/compiler/scala/tools/nsc/interactive/ScratchPadMaker.scala @@ -35,7 +35,7 @@ trait ScratchPadMaker { self: Global => private def literal(str: String) = "\"\"\""+str+"\"\"\"" - private val prologue = "import scala.runtime.WorksheetSupport._; def main(args: Array[String])=$execute{" + private val prologue = ";import scala.runtime.WorksheetSupport._; def main(args: Array[String])=$execute{" private val epilogue = "}" @@ -117,12 +117,13 @@ trait ScratchPadMaker { self: Global => super.traverse(tree) case ModuleDef(_, name, Template(_, _, body)) => val topLevel = objectName.isEmpty - if (topLevel) objectName = tree.symbol.fullName - body foreach traverseStat - if (skipped != 0) { // don't issue prologue and epilogue if there are no instrumented statements - applyPendingPatches(skipped) - if (topLevel) + if (topLevel) { + objectName = tree.symbol.fullName + body foreach traverseStat + if (skipped != 0) { // don't issue prologue and epilogue if there are no instrumented statements + applyPendingPatches(skipped) patches += Patch(skipped, epilogue) + } } case _ => } |