Special error when using catch after try

This commit is contained in:
Kampfkarren
2019-04-10 10:35:48 -07:00
parent 53b622a48a
commit 4a938b5b3c
3 changed files with 26 additions and 1 deletions

View File

@@ -3618,7 +3618,13 @@ impl<'a> Parser<'a> {
{
let (iattrs, body) = self.parse_inner_attrs_and_block()?;
attrs.extend(iattrs);
Ok(self.mk_expr(span_lo.to(body.span), ExprKind::TryBlock(body), attrs))
if self.eat_keyword(keywords::Catch) {
let mut error = self.struct_span_err(self.prev_span, "`try {} catch` is not a valid syntax");
error.help("try using `match` on the result of the `try` block instead");
Err(error)
} else {
Ok(self.mk_expr(span_lo.to(body.span), ExprKind::TryBlock(body), attrs))
}
}
// `match` token already eaten