]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_transmute/src/layout/tree.rs
Rollup merge of #104003 - c410-f3r:moar-errors, r=petrochenkov
[rust.git] / compiler / rustc_transmute / src / layout / tree.rs
index acd4fa63d7823ac83c1ca4749525b578f90abe6d..30e20ba6f586899cc1dd6eff3a12d3cb8b3da9b2 100644 (file)
@@ -284,7 +284,8 @@ pub fn from_ty(ty: Ty<'tcx>, tcx: TyCtxt<'tcx>) -> Result<Self, Err> {
                 }
 
                 ty::Array(ty, len) => {
-                    let len = len.try_eval_usize(tcx, ParamEnv::reveal_all()).unwrap();
+                    let len =
+                        len.try_eval_usize(tcx, ParamEnv::reveal_all()).ok_or(Err::Unspecified)?;
                     let elt = Tree::from_ty(*ty, tcx)?;
                     Ok(std::iter::repeat(elt)
                         .take(len as usize)
@@ -435,8 +436,8 @@ fn from_repr_c_variant(
 
             // finally: padding
             let padding_span = trace_span!("adding trailing padding").entered();
-            let padding_needed = layout_summary.total_size - variant_layout.size();
-            if padding_needed > 0 {
+            if layout_summary.total_size > variant_layout.size() {
+                let padding_needed = layout_summary.total_size - variant_layout.size();
                 tree = tree.then(Self::padding(padding_needed));
             };
             drop(padding_span);