diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-07-06 12:23:52 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-07-06 12:23:52 +1000 |
commit | f4275e22e000541eb619808723b70bd64b9b4873 (patch) | |
tree | 9eb2e5c2a77ad875a082c5076f0b92bd7cae08f2 /src/main | |
parent | 1568a28842e2c538ca735a34274ae5e4ee5eca22 (diff) | |
download | scala-async-f4275e22e000541eb619808723b70bd64b9b4873.tar.gz scala-async-f4275e22e000541eb619808723b70bd64b9b4873.tar.bz2 scala-async-f4275e22e000541eb619808723b70bd64b9b4873.zip |
Fix compiler crash with value class in result position
We were leaking untyped trees out of the macro, which crashed
in refchecks.
This commit proactively typechecks the tree returned by `mkZero`.
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/scala/scala/async/internal/TransformUtils.scala | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/main/scala/scala/async/internal/TransformUtils.scala b/src/main/scala/scala/async/internal/TransformUtils.scala index bd7093f..df958b8 100644 --- a/src/main/scala/scala/async/internal/TransformUtils.scala +++ b/src/main/scala/scala/async/internal/TransformUtils.scala @@ -343,9 +343,8 @@ private[async] trait TransformUtils { New(TypeTree(baseType)))), tpSym.asClass.primaryConstructor) val zero = gen.mkMethodCall(target, argZero :: Nil) - // restore the original type which we might otherwise have weakened with `baseType` above - gen.mkCast(zero, tp) + c.typecheck(atMacroPos(gen.mkCast(zero, tp))) } else { gen.mkZero(tp) } |