aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-08-07 09:57:28 +0200
committerJason Zaugg <jzaugg@gmail.com>2013-08-07 09:57:28 +0200
commitd676e55d4a4047aca57ca4491759010bd186f038 (patch)
treefed2d8a00a4c71810d55e2da038960c20e92f189 /src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
parent2c3a81ca101e103c1defa5e34aaeefa096911c0b (diff)
downloadscala-async-d676e55d4a4047aca57ca4491759010bd186f038.tar.gz
scala-async-d676e55d4a4047aca57ca4491759010bd186f038.tar.bz2
scala-async-d676e55d4a4047aca57ca4491759010bd186f038.zip
Set the type of case bodies to Unit after ANF.
Avoids runtime errors like: "java.lang.Double cannot be cast to scala.runtime.BoxedUnit"
Diffstat (limited to 'src/test/scala/scala/async/run/anf/AnfTransformSpec.scala')
-rw-r--r--src/test/scala/scala/async/run/anf/AnfTransformSpec.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala b/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
index 595ed63..c8cec28 100644
--- a/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
+++ b/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
@@ -379,6 +379,20 @@ class AnfTransformSpec {
}
@Test
+ def caseBodyMustBeTypedAsUnit() {
+ import _root_.scala.async.internal.AsyncId.{async, await}
+ val Up = 1
+ val Down = 2
+ val sign = async {
+ await(1) match {
+ case Up => 1.0
+ case Down => -1.0
+ }
+ }
+ sign mustBe 1.0
+ }
+
+ @Test
def awaitInImplicitApply() {
val tb = mkToolbox(s"-cp ${toolboxClasspath}")
val tree = tb.typeCheck(tb.parse {