diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/scala/async/AnfTransform.scala | 2 | ||||
-rw-r--r-- | src/main/scala/scala/async/Async.scala | 4 | ||||
-rw-r--r-- | src/test/scala/scala/async/neg/AnfTransformNegSpec.scala | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/main/scala/scala/async/AnfTransform.scala b/src/main/scala/scala/async/AnfTransform.scala index 74f7211..e1d7cd5 100644 --- a/src/main/scala/scala/async/AnfTransform.scala +++ b/src/main/scala/scala/async/AnfTransform.scala @@ -66,7 +66,7 @@ class AnfTransform[C <: Context](override val c: C) extends TransformUtils(c) { case ValDef(mods, name, tpt, rhs) => val stats :+ expr = inline.transformToList(rhs) - stats :+ ValDef(mods, name, tpt, expr) + stats :+ ValDef(mods, name, tpt, expr).setSymbol(tree.symbol) case Assign(name, rhs) => val stats :+ expr = inline.transformToList(rhs) diff --git a/src/main/scala/scala/async/Async.scala b/src/main/scala/scala/async/Async.scala index 30b393e..94f42c0 100644 --- a/src/main/scala/scala/async/Async.scala +++ b/src/main/scala/scala/async/Async.scala @@ -101,6 +101,10 @@ abstract class AsyncBase { val initStates = asyncBlockBuilder.asyncStates.init val localVarTrees = asyncBlockBuilder.asyncStates.flatMap(_.allVarDefs).toList + val renameMap = traverser.liftable.map { + vd => + (vd.symbol, c.fresh(vd.name)) + }.toMap /* lazy val onCompleteHandler = (tr: Try[Any]) => state match { diff --git a/src/test/scala/scala/async/neg/AnfTransformNegSpec.scala b/src/test/scala/scala/async/neg/AnfTransformNegSpec.scala index 38790dd..0678429 100644 --- a/src/test/scala/scala/async/neg/AnfTransformNegSpec.scala +++ b/src/test/scala/scala/async/neg/AnfTransformNegSpec.scala @@ -6,12 +6,13 @@ package neg import org.junit.runner.RunWith import org.junit.runners.JUnit4 -import org.junit.Test +import org.junit.{Ignore, Test} @RunWith(classOf[JUnit4]) class AnfTransformNegSpec { @Test + @Ignore def `inlining block produces duplicate definition`() { expectError("x is already defined as value x", "-deprecation -Xfatal-warnings") { """ @@ -35,6 +36,7 @@ class AnfTransformNegSpec { } @Test + @Ignore def `inlining block in tail position produces duplicate definition`() { expectError("x is already defined as value x", "-deprecation -Xfatal-warnings") { """ |