diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-07-11 15:34:21 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-07-11 15:34:21 +1000 |
commit | c78081090ef2fddcb013c908b3a986d2769a9fe2 (patch) | |
tree | 087c7c6b644c50535b1d19f68099fdd9e761ed27 /src/main/scala/scala/async/internal/AsyncBase.scala | |
parent | e4053220e091988e883f87d66459f329d5a39920 (diff) | |
download | scala-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.scala | 7 |
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) } } |