summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-09-26 06:06:39 -0700
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-09-26 06:06:39 -0700
commitd5302c748fc31680d5a8140898106629057b46ad (patch)
treed377b25e3f08326c67c46d862f5e26bb68610ed3
parent5691373feb3a99d5429dedfaec994d6421b3286f (diff)
parent092eac75a25dc09734c940adb962d62eebfeeaa0 (diff)
downloadscala-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.scala13
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 _ =>
}