aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/AsyncAnalysis.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-11-23 17:35:52 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-11-23 17:35:52 +0100
commitf9c25fc4acac6a5965d68584d68eee7539e4ba45 (patch)
tree2d2ae102e229b6997db7c4cd1fb7c4b16378ec7a /src/main/scala/scala/async/AsyncAnalysis.scala
parent73ab189dcb45bccc0ba6e2e0d445b08057391496 (diff)
downloadscala-async-f9c25fc4acac6a5965d68584d68eee7539e4ba45.tar.gz
scala-async-f9c25fc4acac6a5965d68584d68eee7539e4ba45.tar.bz2
scala-async-f9c25fc4acac6a5965d68584d68eee7539e4ba45.zip
Forbid await in try/catch.
Diffstat (limited to 'src/main/scala/scala/async/AsyncAnalysis.scala')
-rw-r--r--src/main/scala/scala/async/AsyncAnalysis.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/AsyncAnalysis.scala b/src/main/scala/scala/async/AsyncAnalysis.scala
index 35d2854..c160776 100644
--- a/src/main/scala/scala/async/AsyncAnalysis.scala
+++ b/src/main/scala/scala/async/AsyncAnalysis.scala
@@ -53,6 +53,16 @@ private[async] final case class AsyncAnalysis[C <: Context](override val c: C) e
reportUnsupportedAwait(function, "nested function")
}
+ override def traverse(tree: Tree) {
+ def containsAwait = tree exists isAwait
+ tree match {
+ case Try(_, _, _) if containsAwait =>
+ reportUnsupportedAwait(tree, "try/catch")
+ case _ =>
+ super.traverse(tree)
+ }
+ }
+
/**
* @return true, if the tree contained an unsupported await.
*/