aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/MacroTransform.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-11-04 09:30:36 +0100
committerMartin Odersky <odersky@gmail.com>2014-11-09 19:08:59 +0100
commit7194afe4b9a0bb04700b023a1c29047eb6349f88 (patch)
treedbba3f86505fbfba2de2fc5c26db1a55983a93ce /src/dotty/tools/dotc/transform/MacroTransform.scala
parentd28754110576070ea6f94e626005d149a3470d20 (diff)
downloaddotty-7194afe4b9a0bb04700b023a1c29047eb6349f88.tar.gz
dotty-7194afe4b9a0bb04700b023a1c29047eb6349f88.tar.bz2
dotty-7194afe4b9a0bb04700b023a1c29047eb6349f88.zip
Take supercalls into account for statement context
After Mixin, super calls can appear in statemenr sequences. They need to be typechecked and transformed using a special context.
Diffstat (limited to 'src/dotty/tools/dotc/transform/MacroTransform.scala')
-rw-r--r--src/dotty/tools/dotc/transform/MacroTransform.scala3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/MacroTransform.scala b/src/dotty/tools/dotc/transform/MacroTransform.scala
index 47ffaafb3..3a8bcc920 100644
--- a/src/dotty/tools/dotc/transform/MacroTransform.scala
+++ b/src/dotty/tools/dotc/transform/MacroTransform.scala
@@ -44,11 +44,10 @@ abstract class MacroTransform extends Phase {
def currentClass(implicit ctx: Context): ClassSymbol = ctx.owner.enclosingClass.asClass
def transformStats(trees: List[Tree], exprOwner: Symbol)(implicit ctx: Context): List[Tree] = {
- val exprCtx = ctx.withOwner(exprOwner)
def transformStat(stat: Tree): Tree = stat match {
case _: Import | _: DefTree => transform(stat)
case Thicket(stats) => cpy.Thicket(stat)(stats mapConserve transformStat)
- case _ => transform(stat)(exprCtx)
+ case _ => transform(stat)(ctx.exprContext(stat, exprOwner))
}
flatten(trees.mapconserve(transformStat(_)))
}