@@ -67,8 +67,8 @@ pub trait ValueAnalysis<'tcx> {
6767 StatementKind :: Assign ( box ( place, rvalue) ) => {
6868 self . handle_assign ( * place, rvalue, state) ;
6969 }
70- StatementKind :: SetDiscriminant { box ref place, .. } => {
71- state . flood_discr ( place. as_ref ( ) , self . map ( ) ) ;
70+ StatementKind :: SetDiscriminant { box place, variant_index } => {
71+ self . handle_set_discriminant ( * place, * variant_index , state ) ;
7272 }
7373 StatementKind :: Intrinsic ( box intrinsic) => {
7474 self . handle_intrinsic ( intrinsic, state) ;
@@ -94,6 +94,24 @@ pub trait ValueAnalysis<'tcx> {
9494 }
9595 }
9696
97+ fn handle_set_discriminant (
98+ & self ,
99+ place : Place < ' tcx > ,
100+ variant_index : VariantIdx ,
101+ state : & mut State < Self :: Value > ,
102+ ) {
103+ self . super_set_discriminant ( place, variant_index, state)
104+ }
105+
106+ fn super_set_discriminant (
107+ & self ,
108+ place : Place < ' tcx > ,
109+ _variant_index : VariantIdx ,
110+ state : & mut State < Self :: Value > ,
111+ ) {
112+ state. flood_discr ( place. as_ref ( ) , self . map ( ) ) ;
113+ }
114+
97115 fn handle_intrinsic (
98116 & self ,
99117 intrinsic : & NonDivergingIntrinsic < ' tcx > ,
0 commit comments