@@ -400,7 +400,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
400400 TrackElem :: Variant ( idx) => self . ecx . project_downcast ( op, idx) . ok ( ) ,
401401 TrackElem :: Discriminant => {
402402 let variant = self . ecx . read_discriminant ( op) . ok ( ) ?;
403- let discr_value = self . ecx . discriminant_for_variant ( op. layout , variant) . ok ( ) ?;
403+ let discr_value =
404+ self . ecx . discriminant_for_variant ( op. layout . ty , variant) . ok ( ) ?;
404405 Some ( discr_value. into ( ) )
405406 }
406407 TrackElem :: DerefLen => {
@@ -499,7 +500,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
499500 return None ;
500501 }
501502 let enum_ty_layout = self . tcx . layout_of ( self . param_env . and ( enum_ty) ) . ok ( ) ?;
502- let discr_value = self . ecx . discriminant_for_variant ( enum_ty_layout, variant_index) . ok ( ) ?;
503+ let discr_value =
504+ self . ecx . discriminant_for_variant ( enum_ty_layout. ty , variant_index) . ok ( ) ?;
503505 Some ( discr_value. to_scalar ( ) )
504506 }
505507
@@ -693,7 +695,7 @@ impl<'tcx> Visitor<'tcx> for OperandCollector<'tcx, '_, '_, '_> {
693695 }
694696}
695697
696- struct DummyMachine ;
698+ pub ( crate ) struct DummyMachine ;
697699
698700impl < ' mir , ' tcx : ' mir > rustc_const_eval:: interpret:: Machine < ' mir , ' tcx > for DummyMachine {
699701 rustc_const_eval:: interpret:: compile_time_machine!( <' mir, ' tcx>) ;
@@ -708,8 +710,9 @@ impl<'mir, 'tcx: 'mir> rustc_const_eval::interpret::Machine<'mir, 'tcx> for Dumm
708710 }
709711
710712 fn enforce_validity ( _ecx : & InterpCx < ' mir , ' tcx , Self > , _layout : TyAndLayout < ' tcx > ) -> bool {
711- unimplemented ! ( )
713+ false
712714 }
715+
713716 fn alignment_check_failed (
714717 _ecx : & InterpCx < ' mir , ' tcx , Self > ,
715718 _has : Align ,
0 commit comments