@@ -400,7 +400,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
400
400
TrackElem :: Variant ( idx) => self . ecx . project_downcast ( op, idx) . ok ( ) ,
401
401
TrackElem :: Discriminant => {
402
402
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 ( ) ?;
404
405
Some ( discr_value. into ( ) )
405
406
}
406
407
TrackElem :: DerefLen => {
@@ -499,7 +500,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
499
500
return None ;
500
501
}
501
502
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 ( ) ?;
503
505
Some ( discr_value. to_scalar ( ) )
504
506
}
505
507
@@ -693,7 +695,7 @@ impl<'tcx> Visitor<'tcx> for OperandCollector<'tcx, '_, '_, '_> {
693
695
}
694
696
}
695
697
696
- struct DummyMachine ;
698
+ pub ( crate ) struct DummyMachine ;
697
699
698
700
impl < ' mir , ' tcx : ' mir > rustc_const_eval:: interpret:: Machine < ' mir , ' tcx > for DummyMachine {
699
701
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
708
710
}
709
711
710
712
fn enforce_validity ( _ecx : & InterpCx < ' mir , ' tcx , Self > , _layout : TyAndLayout < ' tcx > ) -> bool {
711
- unimplemented ! ( )
713
+ false
712
714
}
715
+
713
716
fn alignment_check_failed (
714
717
_ecx : & InterpCx < ' mir , ' tcx , Self > ,
715
718
_has : Align ,
0 commit comments