@@ -406,7 +406,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
406
406
TrackElem :: Variant ( idx) => self . ecx . project_downcast ( op, idx) . ok ( ) ,
407
407
TrackElem :: Discriminant => {
408
408
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 ( ) ?;
410
411
Some ( discr_value. into ( ) )
411
412
}
412
413
TrackElem :: DerefLen => {
@@ -507,7 +508,8 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> {
507
508
return None ;
508
509
}
509
510
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 ( ) ?;
511
513
Some ( discr_value. to_scalar ( ) )
512
514
}
513
515
@@ -701,7 +703,7 @@ impl<'tcx> Visitor<'tcx> for OperandCollector<'tcx, '_, '_, '_> {
701
703
}
702
704
}
703
705
704
- struct DummyMachine ;
706
+ pub ( crate ) struct DummyMachine ;
705
707
706
708
impl < ' mir , ' tcx : ' mir > rustc_const_eval:: interpret:: Machine < ' mir , ' tcx > for DummyMachine {
707
709
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
716
718
}
717
719
718
720
fn enforce_validity ( _ecx : & InterpCx < ' mir , ' tcx , Self > , _layout : TyAndLayout < ' tcx > ) -> bool {
719
- unimplemented ! ( )
721
+ false
720
722
}
723
+
721
724
fn alignment_check_failed (
722
725
_ecx : & InterpCx < ' mir , ' tcx , Self > ,
723
726
_has : Align ,
0 commit comments