aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/AsyncBase.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-07-11 15:34:21 +1000
committerJason Zaugg <jzaugg@gmail.com>2013-07-11 15:34:21 +1000
commitc78081090ef2fddcb013c908b3a986d2769a9fe2 (patch)
tree087c7c6b644c50535b1d19f68099fdd9e761ed27 /src/main/scala/scala/async/internal/AsyncBase.scala
parente4053220e091988e883f87d66459f329d5a39920 (diff)
downloadscala-async-c78081090ef2fddcb013c908b3a986d2769a9fe2.tar.gz
scala-async-c78081090ef2fddcb013c908b3a986d2769a9fe2.tar.bz2
scala-async-c78081090ef2fddcb013c908b3a986d2769a9fe2.zip
Comply with range position checking.
- Make sure all trees are positioned - Mark range positions for synthetic code as transparent to allow some wiggle room for overlapping ranges. Enables -Yrangepos for our test suite. We can't add it for the entire build until the fix for SI-7649 lands in the compiler.
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncBase.scala')
-rw-r--r--src/main/scala/scala/async/internal/AsyncBase.scala7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncBase.scala b/src/main/scala/scala/async/internal/AsyncBase.scala
index 2f7e38d..ca06039 100644
--- a/src/main/scala/scala/async/internal/AsyncBase.scala
+++ b/src/main/scala/scala/async/internal/AsyncBase.scala
@@ -50,9 +50,12 @@ abstract class AsyncBase {
val code = asyncMacro.asyncTransform[T](
body.tree.asInstanceOf[asyncMacro.global.Tree],
execContext.tree.asInstanceOf[asyncMacro.global.Tree],
- fallbackEnabled)(implicitly[c.WeakTypeTag[T]].asInstanceOf[asyncMacro.global.WeakTypeTag[T]])
+ fallbackEnabled)(implicitly[c.WeakTypeTag[T]].asInstanceOf[asyncMacro.global.WeakTypeTag[T]]).asInstanceOf[Tree]
+
+ for (t <- code)
+ t.pos = t.pos.makeTransparent
AsyncUtils.vprintln(s"async state machine transform expands to:\n ${code}")
- c.Expr[futureSystem.Fut[T]](code.asInstanceOf[Tree])
+ c.Expr[futureSystem.Fut[T]](code)
}
}