diff options
Diffstat (limited to 'src/main/scala/scala/async/AsyncAnalysis.scala')
-rw-r--r-- | src/main/scala/scala/async/AsyncAnalysis.scala | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main/scala/scala/async/AsyncAnalysis.scala b/src/main/scala/scala/async/AsyncAnalysis.scala index 9184960..7c667c3 100644 --- a/src/main/scala/scala/async/AsyncAnalysis.scala +++ b/src/main/scala/scala/async/AsyncAnalysis.scala @@ -76,16 +76,16 @@ private[async] final case class AsyncAnalysis[C <: Context](c: C, asyncBase: Asy } override def traverse(tree: Tree) { - def containsAwait = tree exists isAwait + def containsAwait(t: Tree) = t exists isAwait tree match { - case Try(_, _, _) if containsAwait => - reportUnsupportedAwait(tree, "try/catch") + case Try(_, catches, _) if catches exists containsAwait => + reportUnsupportedAwait(tree, "catch") super.traverse(tree) - case Return(_) => + case Return(_) => c.abort(tree.pos, "return is illegal within a async block") - case ValDef(mods, _, _, _) if mods.hasFlag(Flag.LAZY) => + case ValDef(mods, _, _, _) if mods.hasFlag(Flag.LAZY) => c.abort(tree.pos, "lazy vals are illegal within an async block") - case _ => + case _ => super.traverse(tree) } } |