aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-10-14 21:57:32 +0200
committerJason Zaugg <jzaugg@gmail.com>2013-10-14 22:00:33 +0200
commit788b031908d0628d0db8e47abd791b397c12138a (patch)
tree969dbebdbf538d2874aebbb136dafe596fb1a45e /src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
parent6618395948cf9c1b0f5b3c35c41f4631197949de (diff)
downloadscala-async-788b031908d0628d0db8e47abd791b397c12138a.tar.gz
scala-async-788b031908d0628d0db8e47abd791b397c12138a.tar.bz2
scala-async-788b031908d0628d0db8e47abd791b397c12138a.zip
Handle while loops as expressions in ANF transform.
Append a `()`, as we do for `Unit` returning `if`-s and `try-s` We don't currently support `await` in try/catch, otherwise I'd write tests for that case, too.
Diffstat (limited to 'src/test/scala/scala/async/run/ifelse0/WhileSpec.scala')
-rw-r--r--src/test/scala/scala/async/run/ifelse0/WhileSpec.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala b/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
index 666c373..4b3c2aa 100644
--- a/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
+++ b/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
@@ -62,4 +62,18 @@ class WhileSpec {
}
result mustBe (100)
}
+
+ @Test
+ def whileExpr() {
+ import AsyncId._
+
+ val result = async {
+ var cond = true
+ while (cond) {
+ cond = false
+ await { 22 }
+ }
+ }
+ result mustBe ()
+ }
}