about summary refs log tree commit diff
path: root/src/librustc_parse/parser/expr.rs
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-12-06 23:44:23 +0100
committerMazdak Farrokhzad <twingoow@gmail.com>2019-12-23 13:43:28 +0100
commitaa8adba8fbd408d94af21fbf768ffab95f7866ef (patch)
treeb71e89aebbd07c68394b6834adec88aaaf46a466 /src/librustc_parse/parser/expr.rs
parentf647c11121bcaff1a9006b7d04cd52331f1be869 (diff)
downloadrust-aa8adba8fbd408d94af21fbf768ffab95f7866ef.tar.gz
rust-aa8adba8fbd408d94af21fbf768ffab95f7866ef.zip
simplify parse_literal_maybe_minus
Diffstat (limited to 'src/librustc_parse/parser/expr.rs')
-rw-r--r--src/librustc_parse/parser/expr.rs12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/librustc_parse/parser/expr.rs b/src/librustc_parse/parser/expr.rs
index acc7bfd3f8a..982a7e8db54 100644
--- a/src/librustc_parse/parser/expr.rs
+++ b/src/librustc_parse/parser/expr.rs
@@ -1280,17 +1280,13 @@ impl<'a> Parser<'a> {
     pub fn parse_literal_maybe_minus(&mut self) -> PResult<'a, P<Expr>> {
         maybe_whole_expr!(self);
 
-        let minus_lo = self.token.span;
-        let minus_present = self.eat(&token::BinOp(token::Minus));
         let lo = self.token.span;
-        let literal = self.parse_lit()?;
-        let hi = self.prev_span;
-        let expr = self.mk_expr(lo.to(hi), ExprKind::Lit(literal), AttrVec::new());
+        let minus_present = self.eat(&token::BinOp(token::Minus));
+        let lit = self.parse_lit()?;
+        let expr = self.mk_expr(lit.span, ExprKind::Lit(lit), AttrVec::new());
 
         if minus_present {
-            let minus_hi = self.prev_span;
-            let unary = self.mk_unary(UnOp::Neg, expr);
-            Ok(self.mk_expr(minus_lo.to(minus_hi), unary, AttrVec::new()))
+            Ok(self.mk_expr(lo.to(self.prev_span), self.mk_unary(UnOp::Neg, expr), AttrVec::new()))
         } else {
             Ok(expr)
         }