diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-10-14 21:57:32 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-10-14 22:00:33 +0200 |
commit | 788b031908d0628d0db8e47abd791b397c12138a (patch) | |
tree | 969dbebdbf538d2874aebbb136dafe596fb1a45e /src/test | |
parent | 6618395948cf9c1b0f5b3c35c41f4631197949de (diff) | |
download | scala-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')
-rw-r--r-- | src/test/scala/scala/async/run/ifelse0/WhileSpec.scala | 14 |
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 () + } } |