aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-11-20 12:53:58 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-11-20 12:55:56 +0100
commit9dc9895dd1ebef82db83d0ac2723eb710eed73de (patch)
tree3e027db2234463a0de0aabbdb792845ebed04aea
parentc79ecacc9efc2799553ffc5bd53c8a0fc46662be (diff)
downloadscala-async-9dc9895dd1ebef82db83d0ac2723eb710eed73de.tar.gz
scala-async-9dc9895dd1ebef82db83d0ac2723eb710eed73de.tar.bz2
scala-async-9dc9895dd1ebef82db83d0ac2723eb710eed73de.zip
Fix a NPE in the presentation compiler
We were using a TypingTransformer and we called `atOwner` before we had called `transform`. This meant that `currTree` was null, which was observed when that was passed to `Context#make`. IDE ticket: https://scala-ide-portfolio.assembla.com/spaces/scala-ide/tickets/1001971#/activity/ticket: Stack trace: exception during macro expansion: java.lang.NullPointerException at scala.tools.nsc.interactive.ContextTrees$class.addContext(ContextTrees.scala:78) at scala.tools.nsc.interactive.Global.addContext(Global.scala:28) at scala.tools.nsc.interactive.Global.registerContext(Global.scala:268) at scala.tools.nsc.typechecker.Contexts$Context.make(Contexts.scala:295) at scala.tools.nsc.typechecker.Contexts$Context.make0(Contexts.scala:320) at scala.tools.nsc.typechecker.Contexts$Context.make(Contexts.scala:327) at scala.tools.nsc.typechecker.Typers$Typer.atOwner(Typers.scala:5662) at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:33) at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) at scala.async.internal.AsyncTransform$class.fixup$1(AsyncTransform.scala:191)
-rw-r--r--src/main/scala/scala/async/internal/TransformUtils.scala1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/internal/TransformUtils.scala b/src/main/scala/scala/async/internal/TransformUtils.scala
index 92c9a4f..71fddaa 100644
--- a/src/main/scala/scala/async/internal/TransformUtils.scala
+++ b/src/main/scala/scala/async/internal/TransformUtils.scala
@@ -203,6 +203,7 @@ private[async] trait TransformUtils {
abstract class MacroTypingTransformer extends TypingTransformer(callSiteTyper.context.unit) {
currentOwner = callSiteTyper.context.owner
+ curTree = EmptyTree
def currOwner: Symbol = currentOwner