diff options
Diffstat (limited to 'src/main/scala')
-rw-r--r-- | src/main/scala/scala/async/AnfTransform.scala | 3 | ||||
-rw-r--r-- | src/main/scala/scala/async/Async.scala | 10 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/main/scala/scala/async/AnfTransform.scala b/src/main/scala/scala/async/AnfTransform.scala index f29d6a1..74f7211 100644 --- a/src/main/scala/scala/async/AnfTransform.scala +++ b/src/main/scala/scala/async/AnfTransform.scala @@ -77,8 +77,7 @@ class AnfTransform[C <: Context](override val c: C) extends TransformUtils(c) { val thenStats :+ thenExpr = inline.transformToList(thenp) val elseStats :+ elseExpr = inline.transformToList(elsep) stats :+ - c.typeCheck(If(expr, Block(thenStats, thenExpr), Block(elseStats, elseExpr)), - lub(List(thenp.tpe, elsep.tpe))) + c.typeCheck(If(expr, Block(thenStats, thenExpr), Block(elseStats, elseExpr))) //TODO case Literal(_) | Ident(_) | This(_) | Match(_, _) | New(_) | Function(_, _) => List(tree) diff --git a/src/main/scala/scala/async/Async.scala b/src/main/scala/scala/async/Async.scala index f53e863..072aea7 100644 --- a/src/main/scala/scala/async/Async.scala +++ b/src/main/scala/scala/async/Async.scala @@ -75,11 +75,11 @@ abstract class AsyncBase { import builder.name import builder.futureSystemOps - // typecheck body, because the ANF transform needs type info in some places - val typedBody = c.typeCheck(body.tree) - val transform = new AnfTransform[c.type](c) - val stats1 :+ expr1 = transform.anf.transformToList(typedBody) - val btree = c.typeCheck(Block(stats1, expr1)) + val btree: Tree = { + val transform = new AnfTransform[c.type](c) + val stats1 :+ expr1 = transform.anf.transformToList(body.tree) + c.typeCheck(Block(stats1, expr1)) + } AsyncUtils.vprintln(s"In file '${c.macroApplication.pos.source.path}':") AsyncUtils.vprintln(s"${c.macroApplication}") |