aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/scala/async/AnfTransform.scala3
-rw-r--r--src/main/scala/scala/async/Async.scala10
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}")