about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-08-29 17:42:45 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-10-16 11:57:19 -0700
commit1ec60730fecfc72eb7454f2b8d37f7de7068cd20 (patch)
treea9fba1ec2b7eae9f2ccfbeb8af9c3c43410a3d7a
parentbe9e6af65e5cd4811725c6f29fe99b7bf6e6611d (diff)
downloadrust-1ec60730fecfc72eb7454f2b8d37f7de7068cd20.tar.gz
rust-1ec60730fecfc72eb7454f2b8d37f7de7068cd20.zip
Deduplicate code for formatting `RangeEnd`
-rw-r--r--src/librustc/hir/mod.rs9
-rw-r--r--src/librustc_mir/hair/pattern/_match.rs7
-rw-r--r--src/librustc_mir/hair/pattern/mod.rs5
3 files changed, 12 insertions, 9 deletions
diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs
index 7350f89018b..02b391615b6 100644
--- a/src/librustc/hir/mod.rs
+++ b/src/librustc/hir/mod.rs
@@ -989,6 +989,15 @@ pub enum RangeEnd {
     Excluded,
 }
 
+impl fmt::Display for RangeEnd {
+    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        f.write_str(match self {
+            RangeEnd::Included => "..=",
+            RangeEnd::Excluded => "..",
+        })
+    }
+}
+
 #[derive(RustcEncodable, RustcDecodable, Debug, HashStable)]
 pub enum PatKind {
     /// Represents a wildcard pattern (i.e., `_`).
diff --git a/src/librustc_mir/hair/pattern/_match.rs b/src/librustc_mir/hair/pattern/_match.rs
index 48ff7fff5ed..636bb2ed617 100644
--- a/src/librustc_mir/hair/pattern/_match.rs
+++ b/src/librustc_mir/hair/pattern/_match.rs
@@ -482,12 +482,9 @@ impl<'tcx> Constructor<'tcx> {
                 // Get the right sign on the output:
                 let ty = ty::ParamEnv::empty().and(*ty);
                 format!(
-                    "{}..{}{}",
+                    "{}{}{}",
                     ty::Const::from_bits(tcx, *lo, ty),
-                    match range_end {
-                        RangeEnd::Included => "=",
-                        RangeEnd::Excluded => "",
-                    },
+                    range_end,
                     ty::Const::from_bits(tcx, *hi, ty),
                 )
             }
diff --git a/src/librustc_mir/hair/pattern/mod.rs b/src/librustc_mir/hair/pattern/mod.rs
index 58d741b9295..7e17162dfb3 100644
--- a/src/librustc_mir/hair/pattern/mod.rs
+++ b/src/librustc_mir/hair/pattern/mod.rs
@@ -312,10 +312,7 @@ impl<'tcx> fmt::Display for Pat<'tcx> {
             }
             PatKind::Range(PatRange { lo, hi, end }) => {
                 write!(f, "{}", lo)?;
-                match end {
-                    RangeEnd::Included => write!(f, "..=")?,
-                    RangeEnd::Excluded => write!(f, "..")?,
-                }
+                write!(f, "{}", end)?;
                 write!(f, "{}", hi)
             }
             PatKind::Slice { ref prefix, ref slice, ref suffix } |