aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/scala/async')
-rw-r--r--src/test/scala/scala/async/TreeInterrogation.scala4
-rw-r--r--src/test/scala/scala/async/run/nesteddef/NestedDef.scala40
2 files changed, 41 insertions, 3 deletions
diff --git a/src/test/scala/scala/async/TreeInterrogation.scala b/src/test/scala/scala/async/TreeInterrogation.scala
index e3012c7..ca4a309 100644
--- a/src/test/scala/scala/async/TreeInterrogation.scala
+++ b/src/test/scala/scala/async/TreeInterrogation.scala
@@ -56,9 +56,7 @@ object TreeInterrogation extends App {
val tb = mkToolbox("-cp target/scala-2.10/classes -Xprint:all")
val tree = tb.parse(
""" import _root_.scala.async.AsyncId._
- | async {
- | await(0) match { case _ => 0 }
- | }
+ | async { val a = 0; val x = await(a) - 1; def foo(z: Any) = (a.toDouble, x.toDouble, z); foo(await(2)) }
| """.stripMargin)
println(tree)
val tree1 = tb.typeCheck(tree.duplicate)
diff --git a/src/test/scala/scala/async/run/nesteddef/NestedDef.scala b/src/test/scala/scala/async/run/nesteddef/NestedDef.scala
new file mode 100644
index 0000000..2baef0d
--- /dev/null
+++ b/src/test/scala/scala/async/run/nesteddef/NestedDef.scala
@@ -0,0 +1,40 @@
+package scala.async
+package run
+package nesteddef
+
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.junit.Test
+
+@RunWith(classOf[JUnit4])
+class NestedDef {
+
+ @Test
+ def nestedDef() {
+ import AsyncId._
+ val result = async {
+ val a = 0
+ val x = await(a) - 1
+ val local = 43
+ def bar(d: Double) = -d + a + local
+ def foo(z: Any) = (a.toDouble, bar(x).toDouble, z)
+ foo(await(2))
+ }
+ result mustBe (0d, 44d, 2)
+ }
+
+
+ @Test
+ def nestedFunction() {
+ import AsyncId._
+ val result = async {
+ val a = 0
+ val x = await(a) - 1
+ val local = 43
+ val bar = (d: Double) => -d + a + local
+ val foo = (z: Any) => (a.toDouble, bar(x).toDouble, z)
+ foo(await(2))
+ }
+ result mustBe (0d, 44d, 2)
+ }
+}