aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/run/hygiene/Hygiene.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/scala/async/run/hygiene/Hygiene.scala')
-rw-r--r--src/test/scala/scala/async/run/hygiene/Hygiene.scala40
1 files changed, 18 insertions, 22 deletions
diff --git a/src/test/scala/scala/async/run/hygiene/Hygiene.scala b/src/test/scala/scala/async/run/hygiene/Hygiene.scala
index 0da2a4d..9d1df21 100644
--- a/src/test/scala/scala/async/run/hygiene/Hygiene.scala
+++ b/src/test/scala/scala/async/run/hygiene/Hygiene.scala
@@ -30,28 +30,6 @@ class HygieneSpec {
res mustBe ((25, "result", "resume"))
}
-/* TODO:
-[error] /Users/phaller/git/async/src/test/scala/scala/async/run/hygiene/Hygiene.scala:52: not found: value tr$1
-[error] val f1 = async { state + 2 }
-[error] ^
- @Test
- def `is hygenic`() {
- val state = 23
- val result: Any = "result"
- def resume(): Any = "resume"
- val res = async {
- val f1 = async { state + 2 }
- val x = await(f1)
- val y = await(async { result })
- val z = await(async { resume() })
- (x, y, z)
- }
- res._1 mustBe (25)
- res._2 mustBe ("result")
- res._3 mustBe ("resume")
- }
-*/
-
@Test
def `external var as result of await`() {
var ext = 0
@@ -87,4 +65,22 @@ class HygieneSpec {
}
ext mustBe (14)
}
+
+ @Test
+ def `is hygenic nested`() {
+ val state = 23
+ val result: Any = "result"
+ def resume(): Any = "resume"
+ import AsyncId.{await, async}
+ val res = async {
+ val f1 = async { state + 2 }
+ val x = await(f1)
+ val y = await(async { result })
+ val z = await(async(await(async { resume() })))
+ (x, y, z)
+ }
+ res._1 mustBe (25)
+ res._2 mustBe ("result")
+ res._3 mustBe ("resume")
+ }
}