diff options
Diffstat (limited to 'src/test/scala/scala/async/run/hygiene/Hygiene.scala')
-rw-r--r-- | src/test/scala/scala/async/run/hygiene/Hygiene.scala | 40 |
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") + } } |