Rollup merge of #62666 - estebank:preempt-ice, r=eddyb
Cancel unemitted diagnostics during error recovery Follow up to https://github.com/rust-lang/rust/pull/62604. Use @eddyb's preferred style and catch other case of the same problem. r? @eddyb
This commit is contained in:
commit
ae2672340c
1 changed files with 9 additions and 8 deletions
|
@ -7418,13 +7418,12 @@ impl<'a> Parser<'a> {
|
||||||
} else if self.look_ahead(1, |t| *t == token::OpenDelim(token::Paren)) {
|
} else if self.look_ahead(1, |t| *t == token::OpenDelim(token::Paren)) {
|
||||||
let ident = self.parse_ident().unwrap();
|
let ident = self.parse_ident().unwrap();
|
||||||
self.bump(); // `(`
|
self.bump(); // `(`
|
||||||
let kw_name = match self.parse_self_arg_with_attrs() {
|
let kw_name = if let Ok(Some(_)) = self.parse_self_arg_with_attrs()
|
||||||
Ok(Some(_)) => "method",
|
.map_err(|mut e| e.cancel())
|
||||||
Ok(None) => "function",
|
{
|
||||||
Err(mut err) => {
|
"method"
|
||||||
err.cancel();
|
} else {
|
||||||
"function"
|
"function"
|
||||||
}
|
|
||||||
};
|
};
|
||||||
self.consume_block(token::Paren);
|
self.consume_block(token::Paren);
|
||||||
let (kw, kw_name, ambiguous) = if self.check(&token::RArrow) {
|
let (kw, kw_name, ambiguous) = if self.check(&token::RArrow) {
|
||||||
|
@ -7472,7 +7471,9 @@ impl<'a> Parser<'a> {
|
||||||
self.eat_to_tokens(&[&token::Gt]);
|
self.eat_to_tokens(&[&token::Gt]);
|
||||||
self.bump(); // `>`
|
self.bump(); // `>`
|
||||||
let (kw, kw_name, ambiguous) = if self.eat(&token::OpenDelim(token::Paren)) {
|
let (kw, kw_name, ambiguous) = if self.eat(&token::OpenDelim(token::Paren)) {
|
||||||
if let Ok(Some(_)) = self.parse_self_arg_with_attrs() {
|
if let Ok(Some(_)) = self.parse_self_arg_with_attrs()
|
||||||
|
.map_err(|mut e| e.cancel())
|
||||||
|
{
|
||||||
("fn", "method", false)
|
("fn", "method", false)
|
||||||
} else {
|
} else {
|
||||||
("fn", "function", false)
|
("fn", "function", false)
|
||||||
|
|
Loading…
Reference in a new issue