@@ -11,7 +11,7 @@ use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags;
1111use rustc_middle:: mir:: InlineAsmMacro ;
1212use rustc_middle:: ty:: TypeVisitableExt ;
1313use rustc_middle:: ty:: adjustment:: PointerCoercion ;
14- use rustc_middle:: ty:: layout:: FnAbiOf ;
14+ use rustc_middle:: ty:: layout:: { FnAbiOf , HasTypingEnv } ;
1515use rustc_middle:: ty:: print:: with_no_trimmed_paths;
1616
1717use crate :: BackendConfig ;
@@ -673,7 +673,7 @@ fn codegen_stmt<'tcx>(
673673 let func_ref = fx. get_function_ref (
674674 Instance :: resolve_for_fn_ptr (
675675 fx. tcx ,
676- ParamEnv :: reveal_all ( ) ,
676+ ty :: TypingEnv :: fully_monomorphized ( ) ,
677677 def_id,
678678 args,
679679 )
@@ -848,14 +848,18 @@ fn codegen_stmt<'tcx>(
848848 lval. write_cvalue ( fx, CValue :: by_val ( operand, box_layout) ) ;
849849 }
850850 Rvalue :: NullaryOp ( ref null_op, ty) => {
851- assert ! ( lval. layout( ) . ty. is_sized( fx. tcx, ParamEnv :: reveal_all ( ) ) ) ;
851+ assert ! ( lval. layout( ) . ty. is_sized( fx. tcx, fx . typing_env ( ) ) ) ;
852852 let layout = fx. layout_of ( fx. monomorphize ( ty) ) ;
853853 let val = match null_op {
854854 NullOp :: SizeOf => layout. size . bytes ( ) ,
855855 NullOp :: AlignOf => layout. align . abi . bytes ( ) ,
856856 NullOp :: OffsetOf ( fields) => fx
857857 . tcx
858- . offset_of_subfield ( ParamEnv :: reveal_all ( ) , layout, fields. iter ( ) )
858+ . offset_of_subfield (
859+ ty:: TypingEnv :: fully_monomorphized ( ) ,
860+ layout,
861+ fields. iter ( ) ,
862+ )
859863 . bytes ( ) ,
860864 NullOp :: UbChecks => {
861865 let val = fx. tcx . sess . ub_checks ( ) ;
@@ -927,6 +931,7 @@ fn codegen_stmt<'tcx>(
927931 | StatementKind :: FakeRead ( ..)
928932 | StatementKind :: Retag { .. }
929933 | StatementKind :: PlaceMention ( ..)
934+ | StatementKind :: BackwardIncompatibleDropHint { .. }
930935 | StatementKind :: AscribeUserType ( ..) => { }
931936
932937 StatementKind :: Coverage { .. } => unreachable ! ( ) ,
0 commit comments