diff options
author | Philipp Haller <hallerp@gmail.com> | 2012-11-26 10:32:37 -0800 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2012-11-26 10:32:37 -0800 |
commit | 54c97691f78dcd811cd5dad66d0b7d9406fb9ed6 (patch) | |
tree | 31fd1d999bd88275d1202c0ef7f7c8a7fa4f0928 /src/test/scala/scala/async/run/match0/Match0.scala | |
parent | 4518c96f9b54a1b7ca14d82b3ed31d7014a67f57 (diff) | |
parent | 6c3c0f0a37d337aa297f5b2481d4727ea2a20434 (diff) | |
download | scala-async-54c97691f78dcd811cd5dad66d0b7d9406fb9ed6.tar.gz scala-async-54c97691f78dcd811cd5dad66d0b7d9406fb9ed6.tar.bz2 scala-async-54c97691f78dcd811cd5dad66d0b7d9406fb9ed6.zip |
Merge pull request #41 from phaller/ticket/35-synth-object-2
Ticket/35 synth object 2
Diffstat (limited to 'src/test/scala/scala/async/run/match0/Match0.scala')
-rw-r--r-- | src/test/scala/scala/async/run/match0/Match0.scala | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/scala/scala/async/run/match0/Match0.scala b/src/test/scala/scala/async/run/match0/Match0.scala index f550a69..8263e72 100644 --- a/src/test/scala/scala/async/run/match0/Match0.scala +++ b/src/test/scala/scala/async/run/match0/Match0.scala @@ -69,4 +69,47 @@ class MatchSpec { val res = Await.result(fut, 2 seconds) res mustBe (5) } + + @Test def `support await in a match expression with binds`() { + val result = AsyncId.async { + val x = 1 + Option(x) match { + case op @ Some(x) => + assert(op == Some(1)) + x + AsyncId.await(x) + case None => AsyncId.await(0) + } + } + result mustBe (2) + } + + @Test def `support await referring to pattern matching vals`() { + import AsyncId.{async, await} + val result = async { + val x = 1 + val opt = Some("") + await(0) + val o @ Some(y) = opt + + { + val o @ Some(y) = Some(".") + } + + await(0) + await((o, y.isEmpty)) + } + result mustBe ((Some(""), true)) + } + + @Test def `await in scrutinee`() { + import AsyncId.{async, await} + val result = async { + await(if ("".isEmpty) await(1) else ???) match { + case x if x < 0 => ??? + case y: Int => y * await(3) + case _ => ??? + } + } + result mustBe (3) + } } |