Simplify Parser::parse_expr_dot_or_call.

The call in `parse_expr_prefix` for the `++` case passes an empty
`attrs`, but it doesn' need to. This commit changes it to pass the
parsed `attrs`, which doesn't change any behaviour. As a result,
`parse_expr_dot_or_call` no longer needs an `Option` argument, and no
longer needs to call `parse_or_use_outer_attributes`.
This commit is contained in:
Nicholas Nethercote 2024-06-18 20:00:45 +10:00
parent 1fbb3eca67
commit 1c28229ada

View File

@ -629,7 +629,7 @@ impl<'a> Parser<'a> {
this.bump(); this.bump();
this.bump(); this.bump();
let operand_expr = this.parse_expr_dot_or_call(Default::default())?; let operand_expr = this.parse_expr_dot_or_call(attrs)?;
this.recover_from_prefix_increment(operand_expr, pre_span, starts_stmt) this.recover_from_prefix_increment(operand_expr, pre_span, starts_stmt)
} }
token::Ident(..) if this.token.is_keyword(kw::Box) => { token::Ident(..) if this.token.is_keyword(kw::Box) => {
@ -638,7 +638,7 @@ impl<'a> Parser<'a> {
token::Ident(..) if this.may_recover() && this.is_mistaken_not_ident_negation() => { token::Ident(..) if this.may_recover() && this.is_mistaken_not_ident_negation() => {
make_it!(this, attrs, |this, _| this.recover_not_expr(lo)) make_it!(this, attrs, |this, _| this.recover_not_expr(lo))
} }
_ => return this.parse_expr_dot_or_call(Some(attrs)), _ => return this.parse_expr_dot_or_call(attrs),
} }
} }
@ -927,8 +927,7 @@ impl<'a> Parser<'a> {
} }
/// Parses `a.b` or `a(13)` or `a[4]` or just `a`. /// Parses `a.b` or `a(13)` or `a[4]` or just `a`.
fn parse_expr_dot_or_call(&mut self, attrs: Option<AttrWrapper>) -> PResult<'a, P<Expr>> { fn parse_expr_dot_or_call(&mut self, attrs: AttrWrapper) -> PResult<'a, P<Expr>> {
let attrs = self.parse_or_use_outer_attributes(attrs)?;
self.collect_tokens_for_expr(attrs, |this, attrs| { self.collect_tokens_for_expr(attrs, |this, attrs| {
let base = this.parse_expr_bottom()?; let base = this.parse_expr_bottom()?;
let span = this.interpolated_or_expr_span(&base); let span = this.interpolated_or_expr_span(&base);