From f9c25fc4acac6a5965d68584d68eee7539e4ba45 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Fri, 23 Nov 2012 17:35:52 +0100 Subject: Forbid await in try/catch. --- src/main/scala/scala/async/AsyncAnalysis.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/main/scala') 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. */ -- cgit v1.2.3