Cleanup macro matching recovery

The retry has been implemented already.
This commit is contained in:
Nilstrieb 2022-11-19 17:46:04 +01:00
parent 62c627c7a3
commit 825b8db34a
No known key found for this signature in database
2 changed files with 0 additions and 6 deletions

View file

@ -495,7 +495,6 @@ fn try_match_macro<'matcher, T: Tracker<'matcher>>(
// hacky, but speeds up the `html5ever` benchmark significantly. (Issue // hacky, but speeds up the `html5ever` benchmark significantly. (Issue
// 68836 suggests a more comprehensive but more complex change to deal with // 68836 suggests a more comprehensive but more complex change to deal with
// this situation.) // this situation.)
// FIXME(Nilstrieb): Stop recovery from happening on this parser and retry later with recovery if the macro failed to match.
let parser = parser_from_cx(sess, arg.clone(), T::recovery()); let parser = parser_from_cx(sess, arg.clone(), T::recovery());
// Try each arm's matchers. // Try each arm's matchers.
let mut tt_parser = TtParser::new(name); let mut tt_parser = TtParser::new(name);

View file

@ -2078,12 +2078,7 @@ impl<'a> Parser<'a> {
if self.token.kind == TokenKind::Semi if self.token.kind == TokenKind::Semi
&& matches!(self.token_cursor.frame.delim_sp, Some((Delimiter::Parenthesis, _))) && matches!(self.token_cursor.frame.delim_sp, Some((Delimiter::Parenthesis, _)))
// HACK: This is needed so we can detect whether we're inside a macro,
// where regular assumptions about what tokens can follow other tokens
// don't necessarily apply.
&& self.may_recover() && self.may_recover()
// FIXME(Nilstrieb): Remove this check once `may_recover` actually stops recovery
&& self.subparser_name.is_none()
{ {
// It is likely that the closure body is a block but where the // It is likely that the closure body is a block but where the
// braces have been removed. We will recover and eat the next // braces have been removed. We will recover and eat the next