]> git.lizzy.rs Git - rust.git/commitdiff
Improve PlaceElem::Subslice handling
authorbjorn3 <bjorn3@users.noreply.github.com>
Sat, 18 Jan 2020 09:23:51 +0000 (10:23 +0100)
committerbjorn3 <bjorn3@users.noreply.github.com>
Wed, 22 Jan 2020 19:10:00 +0000 (20:10 +0100)
src/base.rs

index 5eb0170a19dd59229c34df71e7e8153874a3ccef..e1ca09fa7804e92423d6df4ac5e8fe89774b6871 100644 (file)
@@ -678,11 +678,10 @@ pub fn trans_place<'tcx>(
                 // slice[from:-to] in Python terms.
 
                 match cplace.layout().ty.kind {
-                    ty::Array(elem_ty, len) => {
+                    ty::Array(elem_ty, _len) => {
+                        assert!(!from_end, "array subslices are never `from_end`");
                         let elem_layout = fx.layout_of(elem_ty);
                         let ptr = cplace.to_ptr(fx);
-                        let len = crate::constant::force_eval_const(fx, len)
-                            .eval_usize(fx.tcx, ParamEnv::reveal_all());
                         cplace = CPlace::for_ptr(
                             ptr.offset_i64(fx, elem_layout.size.bytes() as i64 * from as i64),
                             fx.layout_of(fx.tcx.mk_array(elem_ty, to as u64 - from as u64)),