diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-11-23 18:19:19 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-11-23 18:19:19 +0100 |
commit | db5fd4638c0aac51d66244404dad4dd779f184fa (patch) | |
tree | 3b39cc69e904d3021a1cbd19c31d101d48c5dbb5 /src/test/scala | |
parent | f9c25fc4acac6a5965d68584d68eee7539e4ba45 (diff) | |
download | scala-async-db5fd4638c0aac51d66244404dad4dd779f184fa.tar.gz scala-async-db5fd4638c0aac51d66244404dad4dd779f184fa.tar.bz2 scala-async-db5fd4638c0aac51d66244404dad4dd779f184fa.zip |
Test for await in while (currently forbidden).
Lookup the ValDef symbol from Assign#rhs.symbol.
Diffstat (limited to 'src/test/scala')
-rw-r--r-- | src/test/scala/scala/async/TreeInterrogation.scala | 21 | ||||
-rw-r--r-- | src/test/scala/scala/async/neg/NakedAwait.scala | 16 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/test/scala/scala/async/TreeInterrogation.scala b/src/test/scala/scala/async/TreeInterrogation.scala index 16cbcf7..cf5948c 100644 --- a/src/test/scala/scala/async/TreeInterrogation.scala +++ b/src/test/scala/scala/async/TreeInterrogation.scala @@ -34,4 +34,25 @@ class TreeInterrogation { } varDefs.map(_.decoded).toSet mustBe(Set("state$async", "onCompleteHandler$async", "await$1", "await$2")) } + + + // @Test + def sandbox() { + val cm = reflect.runtime.currentMirror + val tb = mkToolbox("-cp target/scala-2.10/classes") + val tree = tb.parse( + """| import _root_.scala.async.AsyncId._ + | async { + | var x = 0 + | var y = 0 + | while (x <= 2) { + | y = await(x) + | x += 1 + | } + | y + | }""".stripMargin) + val tree1 = tb.typeCheck(tree) + + println(cm.universe.show(tree1)) + } } diff --git a/src/test/scala/scala/async/neg/NakedAwait.scala b/src/test/scala/scala/async/neg/NakedAwait.scala index a0c4e4d..d400729 100644 --- a/src/test/scala/scala/async/neg/NakedAwait.scala +++ b/src/test/scala/scala/async/neg/NakedAwait.scala @@ -117,4 +117,20 @@ class NakedAwait { """.stripMargin } } + + @Test + def whileBody() { + expectError("await must not be used in this position") { + """ import _root_.scala.async.AsyncId._ + | async { + | var x = 0 + | var y = 0 + | while (x <= 2) { + | y = await(x) + | x += 1 + | } + | y + | }""".stripMargin + } + } } |