Skip to content

Commit f05dfe0

Browse files
committed
Cancel unemitted diagnostics during error recovery
1 parent 69656fa commit f05dfe0

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/libsyntax/parse/parser.rs

+9-8
Original file line numberDiff line numberDiff line change
@@ -7410,13 +7410,12 @@ impl<'a> Parser<'a> {
74107410
} else if self.look_ahead(1, |t| *t == token::OpenDelim(token::Paren)) {
74117411
let ident = self.parse_ident().unwrap();
74127412
self.bump(); // `(`
7413-
let kw_name = match self.parse_self_arg_with_attrs() {
7414-
Ok(Some(_)) => "method",
7415-
Ok(None) => "function",
7416-
Err(mut err) => {
7417-
err.cancel();
7418-
"function"
7419-
}
7413+
let kw_name = if let Ok(Some(_)) = self.parse_self_arg_with_attrs()
7414+
.map_err(|mut e| e.cancel())
7415+
{
7416+
"method"
7417+
} else {
7418+
"function"
74207419
};
74217420
self.consume_block(token::Paren);
74227421
let (kw, kw_name, ambiguous) = if self.check(&token::RArrow) {
@@ -7464,7 +7463,9 @@ impl<'a> Parser<'a> {
74647463
self.eat_to_tokens(&[&token::Gt]);
74657464
self.bump(); // `>`
74667465
let (kw, kw_name, ambiguous) = if self.eat(&token::OpenDelim(token::Paren)) {
7467-
if let Ok(Some(_)) = self.parse_self_arg_with_attrs() {
7466+
if let Ok(Some(_)) = self.parse_self_arg_with_attrs()
7467+
.map_err(|mut e| e.cancel())
7468+
{
74687469
("fn", "method", false)
74697470
} else {
74707471
("fn", "function", false)

0 commit comments

Comments
 (0)