about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc/traits/error_reporting.rs24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/librustc/traits/error_reporting.rs b/src/librustc/traits/error_reporting.rs
index f66dcb8dffd..bac22510135 100644
--- a/src/librustc/traits/error_reporting.rs
+++ b/src/librustc/traits/error_reporting.rs
@@ -418,20 +418,16 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
                     Some(format!("[{}]", self.tcx.type_of(def.did).to_string())),
                 ));
                 let tcx = self.tcx;
-                if let ty::LazyConst::Evaluated(len) = len {
-                    if let Some(len) = len.val.try_to_scalar().and_then(|scalar| {
-                        scalar.to_usize(&tcx).ok()
-                    }) {
-                        flags.push((
-                            "_Self".to_owned(),
-                            Some(format!("[{}; {}]", self.tcx.type_of(def.did).to_string(), len)),
-                        ));
-                    } else {
-                        flags.push((
-                            "_Self".to_owned(),
-                            Some(format!("[{}; _]", self.tcx.type_of(def.did).to_string())),
-                        ));
-                    }
+                if let Some(len) = len.assert_usize(tcx) {
+                    flags.push((
+                        "_Self".to_owned(),
+                        Some(format!("[{}; {}]", self.tcx.type_of(def.did).to_string(), len)),
+                    ));
+                } else {
+                    flags.push((
+                        "_Self".to_owned(),
+                        Some(format!("[{}; _]", self.tcx.type_of(def.did).to_string())),
+                    ));
                 }
             }
         }