aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-07-27 14:38:24 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-07-27 14:38:24 +1000
commitc770346316de26cd36f69510a0220b6d3927456e (patch)
treec4409678573dcc8188247df4fcac91366507c5f2 /src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
parentad6c3c0a758c50ce32656e64714a0bd90a28d0be (diff)
parentd74a615334de70c13bd9be00b03b4010de980b0b (diff)
downloadscala-async-c770346316de26cd36f69510a0220b6d3927456e.tar.gz
scala-async-c770346316de26cd36f69510a0220b6d3927456e.tar.bz2
scala-async-c770346316de26cd36f69510a0220b6d3927456e.zip
Merge pull request #127 from retronym/backport/20150727v0.9.5_2.10
Backports for two recently fixed bugs.
Diffstat (limited to 'src/test/scala/scala/async/run/anf/AnfTransformSpec.scala')
-rw-r--r--src/test/scala/scala/async/run/anf/AnfTransformSpec.scala42
1 files changed, 42 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 757ae0b..bbc1b2b 100644
--- a/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
+++ b/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
@@ -405,4 +405,46 @@ class AnfTransformSpec {
val applyImplicitView = tree.collect { case x if x.getClass.getName.endsWith("ApplyImplicitView") => x }
applyImplicitView.map(_.toString) mustBe List("view(a$1)")
}
+
+ @Test
+ def nothingTypedIf(): Unit = {
+ import scala.async.internal.AsyncId.{async, await}
+ val result = util.Try(async {
+ if (true) {
+ val n = await(1)
+ if (n < 2) {
+ throw new RuntimeException("case a")
+ }
+ else {
+ throw new RuntimeException("case b")
+ }
+ }
+ else {
+ "case c"
+ }
+ })
+
+ assert(result.asInstanceOf[util.Failure[_]].exception.getMessage == "case a")
+ }
+
+ @Test
+ def nothingTypedMatch(): Unit = {
+ import scala.async.internal.AsyncId.{async, await}
+ val result = util.Try(async {
+ 0 match {
+ case _ if "".isEmpty =>
+ val n = await(1)
+ n match {
+ case _ if n < 2 =>
+ throw new RuntimeException("case a")
+ case _ =>
+ throw new RuntimeException("case b")
+ }
+ case _ =>
+ "case c"
+ }
+ })
+
+ assert(result.asInstanceOf[util.Failure[_]].exception.getMessage == "case a")
+ }
}