aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/TransformUtils.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-07-06 12:23:52 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-07-06 12:23:52 +1000
commitf4275e22e000541eb619808723b70bd64b9b4873 (patch)
tree9eb2e5c2a77ad875a082c5076f0b92bd7cae08f2 /src/main/scala/scala/async/internal/TransformUtils.scala
parent1568a28842e2c538ca735a34274ae5e4ee5eca22 (diff)
downloadscala-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/scala/scala/async/internal/TransformUtils.scala')
-rw-r--r--src/main/scala/scala/async/internal/TransformUtils.scala3
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)
}