@@ -405,7 +405,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
405405 TrackElem :: Variant ( idx) => self . ecx . project_downcast ( op, idx) . ok ( ) ,
406406 TrackElem :: Discriminant => {
407407 let variant = self . ecx . read_discriminant ( op) . ok ( ) ?;
408- let discr_value = self . ecx . discriminant_for_variant ( op. layout , variant) . ok ( ) ?;
408+ let discr_value =
409+ self . ecx . discriminant_for_variant ( op. layout . ty , variant) . ok ( ) ?;
409410 Some ( discr_value. into ( ) )
410411 }
411412 TrackElem :: DerefLen => {
@@ -506,7 +507,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
506507 return None ;
507508 }
508509 let enum_ty_layout = self . tcx . layout_of ( self . param_env . and ( enum_ty) ) . ok ( ) ?;
509- let discr_value = self . ecx . discriminant_for_variant ( enum_ty_layout, variant_index) . ok ( ) ?;
510+ let discr_value =
511+ self . ecx . discriminant_for_variant ( enum_ty_layout. ty , variant_index) . ok ( ) ?;
510512 Some ( discr_value. to_scalar ( ) )
511513 }
512514
@@ -700,7 +702,7 @@ impl<'tcx> Visitor<'tcx> for OperandCollector<'tcx, '_, '_, '_> {
700702 }
701703}
702704
703- struct DummyMachine ;
705+ pub ( crate ) struct DummyMachine ;
704706
705707impl < ' mir , ' tcx : ' mir > rustc_const_eval:: interpret:: Machine < ' mir , ' tcx > for DummyMachine {
706708 rustc_const_eval:: interpret:: compile_time_machine!( <' mir, ' tcx>) ;
@@ -713,7 +715,7 @@ impl<'mir, 'tcx: 'mir> rustc_const_eval::interpret::Machine<'mir, 'tcx> for Dumm
713715 }
714716
715717 fn enforce_validity ( _ecx : & InterpCx < ' mir , ' tcx , Self > , _layout : TyAndLayout < ' tcx > ) -> bool {
716- unimplemented ! ( )
718+ false
717719 }
718720
719721 fn before_access_global (
0 commit comments