Skip to content

Commit 4cfcfe9

Browse files
committed
extract parse_neg_expr
1 parent f6ab439 commit 4cfcfe9

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/librustc_parse/parser/expr.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -469,12 +469,7 @@ impl<'a> Parser<'a> {
469469
.emit();
470470
(lo.to(span), self.mk_unary(UnOp::Not, e))
471471
}
472-
token::BinOp(token::Minus) => {
473-
self.bump();
474-
let e = self.parse_prefix_expr(None);
475-
let (span, e) = self.interpolated_or_expr_span(e)?;
476-
(lo.to(span), self.mk_unary(UnOp::Neg, e))
477-
}
472+
token::BinOp(token::Minus) => self.parse_neg_expr(lo)?,
478473
token::BinOp(token::Star) => self.parse_deref_expr(lo)?,
479474
token::BinOp(token::And) | token::AndAnd => self.parse_borrow_expr(lo)?,
480475
token::Ident(..) if self.token.is_keyword(kw::Box) => self.parse_box_expr(lo)?,
@@ -486,6 +481,14 @@ impl<'a> Parser<'a> {
486481
return Ok(self.mk_expr(lo.to(hi), ex, attrs));
487482
}
488483

484+
/// Parse `-expr`.
485+
fn parse_neg_expr(&mut self, lo: Span) -> PResult<'a, (Span, ExprKind)> {
486+
self.bump(); // `-`
487+
let expr = self.parse_prefix_expr(None);
488+
let (span, expr) = self.interpolated_or_expr_span(expr)?;
489+
Ok((lo.to(span), self.mk_unary(UnOp::Neg, expr)))
490+
}
491+
489492
/// Parse `*expr`.
490493
fn parse_deref_expr(&mut self, lo: Span) -> PResult<'a, (Span, ExprKind)> {
491494
self.bump(); // `*`

0 commit comments

Comments
 (0)