]> git.lizzy.rs Git - rust.git/commitdiff
lowering: extract lower_expr_range_closed
authorMazdak Farrokhzad <twingoow@gmail.com>
Sat, 10 Aug 2019 12:38:11 +0000 (14:38 +0200)
committerMazdak Farrokhzad <twingoow@gmail.com>
Sat, 10 Aug 2019 18:24:42 +0000 (20:24 +0200)
src/librustc/hir/lowering/expr.rs

index acd0036ff66b37f993e24dfdb56d4d6af8cf8f58..6ae39d192c36a2a474219244916fc0ef787b372e 100644 (file)
@@ -362,18 +362,8 @@ pub(super) fn lower_expr(&mut self, e: &Expr) -> hir::Expr {
             ExprKind::Index(ref el, ref er) => {
                 hir::ExprKind::Index(P(self.lower_expr(el)), P(self.lower_expr(er)))
             }
-            // Desugar `<start>..=<end>` into `std::ops::RangeInclusive::new(<start>, <end>)`.
             ExprKind::Range(Some(ref e1), Some(ref e2), RangeLimits::Closed) => {
-                let id = self.next_id();
-                let e1 = self.lower_expr(e1);
-                let e2 = self.lower_expr(e2);
-                self.expr_call_std_assoc_fn(
-                    id,
-                    e.span,
-                    &[sym::ops, sym::RangeInclusive],
-                    "new",
-                    hir_vec![e1, e2],
-                )
+                self.lower_expr_range_closed(e.span, e1, e2)
             }
             ExprKind::Range(ref e1, ref e2, lims) => {
                 self.lower_expr_range(e.span, e1.as_deref(), e2.as_deref(), lims)
@@ -459,6 +449,20 @@ pub(super) fn lower_expr(&mut self, e: &Expr) -> hir::Expr {
         }
     }
 
+    /// Desugar `<start>..=<end>` into `std::ops::RangeInclusive::new(<start>, <end>)`.
+    fn lower_expr_range_closed(&mut self, span: Span, e1: &Expr, e2: &Expr) -> hir::ExprKind {
+        let id = self.next_id();
+        let e1 = self.lower_expr(e1);
+        let e2 = self.lower_expr(e2);
+        self.expr_call_std_assoc_fn(
+            id,
+            span,
+            &[sym::ops, sym::RangeInclusive],
+            "new",
+            hir_vec![e1, e2],
+        )
+    }
+
     fn lower_expr_range(
         &mut self,
         span: Span,