@@ -406,7 +406,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
406406 TrackElem :: Variant ( idx) => self . ecx . project_downcast ( op, idx) . ok ( ) ,
407407 TrackElem :: Discriminant => {
408408 let variant = self . ecx . read_discriminant ( op) . ok ( ) ?;
409- let discr_value = self . ecx . discriminant_for_variant ( op. layout , variant) . ok ( ) ?;
409+ let discr_value =
410+ self . ecx . discriminant_for_variant ( op. layout . ty , variant) . ok ( ) ?;
410411 Some ( discr_value. into ( ) )
411412 }
412413 TrackElem :: DerefLen => {
@@ -507,7 +508,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
507508 return None ;
508509 }
509510 let enum_ty_layout = self . tcx . layout_of ( self . param_env . and ( enum_ty) ) . ok ( ) ?;
510- let discr_value = self . ecx . discriminant_for_variant ( enum_ty_layout, variant_index) . ok ( ) ?;
511+ let discr_value =
512+ self . ecx . discriminant_for_variant ( enum_ty_layout. ty , variant_index) . ok ( ) ?;
511513 Some ( discr_value. to_scalar ( ) )
512514 }
513515
@@ -701,7 +703,7 @@ impl<'tcx> Visitor<'tcx> for OperandCollector<'tcx, '_, '_, '_> {
701703 }
702704}
703705
704- struct DummyMachine ;
706+ pub ( crate ) struct DummyMachine ;
705707
706708impl < ' mir , ' tcx : ' mir > rustc_const_eval:: interpret:: Machine < ' mir , ' tcx > for DummyMachine {
707709 rustc_const_eval:: interpret:: compile_time_machine!( <' mir, ' tcx>) ;
@@ -716,8 +718,9 @@ impl<'mir, 'tcx: 'mir> rustc_const_eval::interpret::Machine<'mir, 'tcx> for Dumm
716718 }
717719
718720 fn enforce_validity ( _ecx : & InterpCx < ' mir , ' tcx , Self > , _layout : TyAndLayout < ' tcx > ) -> bool {
719- unimplemented ! ( )
721+ false
720722 }
723+
721724 fn alignment_check_failed (
722725 _ecx : & InterpCx < ' mir , ' tcx , Self > ,
723726 _has : Align ,
0 commit comments