From d676e55d4a4047aca57ca4491759010bd186f038 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Wed, 7 Aug 2013 09:57:28 +0200 Subject: Set the type of case bodies to Unit after ANF. Avoids runtime errors like: "java.lang.Double cannot be cast to scala.runtime.BoxedUnit" --- src/main/scala/scala/async/internal/AnfTransform.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/scala/scala/async') diff --git a/src/main/scala/scala/async/internal/AnfTransform.scala b/src/main/scala/scala/async/internal/AnfTransform.scala index d98aaa3..13218f3 100644 --- a/src/main/scala/scala/async/internal/AnfTransform.scala +++ b/src/main/scala/scala/async/internal/AnfTransform.scala @@ -107,7 +107,7 @@ private[async] trait AnfTransform { case b@Block(caseStats, caseExpr) => treeCopy.Block(b, caseStats, typedAssign(caseExpr)) case _ => typedAssign(body) } - treeCopy.CaseDef(cd, pat, guard, newBody).setType(definitions.UnitTpe) + treeCopy.CaseDef(cd, pat, guard, newBody.setType(definitions.UnitTpe)).setType(definitions.UnitTpe) } val matchWithAssign = treeCopy.Match(tree, scrut, casesWithAssign).setType(definitions.UnitTpe) require(matchWithAssign.tpe != null, matchWithAssign) -- cgit v1.2.3