diff --git a/rust-version b/rust-version index 8afb8e9823..3930fa0e94 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -639377ed737b25830ec44dc6acf93467c980316a +3eb5c4581a386b13c414e8c8bd73846ef37236d1 diff --git a/src/eval.rs b/src/eval.rs index d61e17cbf9..ebb71b57ae 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -363,7 +363,7 @@ pub fn create_ecx<'mir, 'tcx: 'mir>( tcx, ty::ParamEnv::reveal_all(), start_id, - tcx.mk_substs(::std::iter::once(ty::subst::GenericArg::from(main_ret_ty))), + tcx.intern_substs(&[ty::subst::GenericArg::from(main_ret_ty)]), ) .unwrap() .unwrap(); diff --git a/src/machine.rs b/src/machine.rs index 269b441c50..f9a6ef34c2 100644 --- a/src/machine.rs +++ b/src/machine.rs @@ -907,8 +907,8 @@ impl<'mir, 'tcx> Machine<'mir, 'tcx> for MiriMachine<'mir, 'tcx> { panic!("extern_statics cannot contain wildcards") }; let (shim_size, shim_align, _kind) = ecx.get_alloc_info(alloc_id); - let extern_decl_layout = - ecx.tcx.layout_of(ty::ParamEnv::empty().and(ecx.tcx.type_of(def_id))).unwrap(); + let def_ty = ecx.tcx.type_of(def_id).subst_identity(); + let extern_decl_layout = ecx.tcx.layout_of(ty::ParamEnv::empty().and(def_ty)).unwrap(); if extern_decl_layout.size != shim_size || extern_decl_layout.align.abi != shim_align { throw_unsup_format!( "`extern` static `{name}` from crate `{krate}` has been declared \