@@ -182,15 +182,15 @@ impl<'mir, 'tcx> Thread<'mir, 'tcx> {
182182}
183183
184184impl VisitMachineValues for Thread < ' _ , ' _ > {
185- fn visit_machine_values ( & self , visit : & mut impl FnMut ( & Operand < Provenance > ) ) {
185+ fn visit_machine_values ( & self , visit : & mut ProvenanceVisitor ) {
186186 let Thread { panic_payload, last_error, stack, state : _, thread_name : _, join_status : _ } =
187187 self ;
188188
189189 if let Some ( payload) = panic_payload {
190- visit ( & Operand :: Immediate ( Immediate :: Scalar ( * payload) ) )
190+ visit. visit ( * payload) ;
191191 }
192192 if let Some ( error) = last_error {
193- visit ( & Operand :: Indirect ( * * error) )
193+ visit. visit ( * * error) ;
194194 }
195195 for frame in stack {
196196 frame. visit_machine_values ( visit)
@@ -199,7 +199,7 @@ impl VisitMachineValues for Thread<'_, '_> {
199199}
200200
201201impl VisitMachineValues for Frame < ' _ , ' _ , Provenance , FrameData < ' _ > > {
202- fn visit_machine_values ( & self , visit : & mut impl FnMut ( & Operand < Provenance > ) ) {
202+ fn visit_machine_values ( & self , visit : & mut ProvenanceVisitor ) {
203203 let Frame {
204204 return_place,
205205 locals,
@@ -213,12 +213,12 @@ impl VisitMachineValues for Frame<'_, '_, Provenance, FrameData<'_>> {
213213
214214 // Return place.
215215 if let Place :: Ptr ( mplace) = * * return_place {
216- visit ( & Operand :: Indirect ( mplace) ) ;
216+ visit. visit ( mplace) ;
217217 }
218218 // Locals.
219219 for local in locals. iter ( ) {
220220 if let LocalValue :: Live ( value) = & local. value {
221- visit ( value) ;
221+ visit. visit ( value) ;
222222 }
223223 }
224224
@@ -299,7 +299,7 @@ impl<'mir, 'tcx> Default for ThreadManager<'mir, 'tcx> {
299299}
300300
301301impl VisitMachineValues for ThreadManager < ' _ , ' _ > {
302- fn visit_machine_values ( & self , visit : & mut impl FnMut ( & Operand < Provenance > ) ) {
302+ fn visit_machine_values ( & self , visit : & mut ProvenanceVisitor ) {
303303 let ThreadManager {
304304 threads,
305305 thread_local_alloc_ids,
@@ -313,8 +313,7 @@ impl VisitMachineValues for ThreadManager<'_, '_> {
313313 thread. visit_machine_values ( visit) ;
314314 }
315315 for ptr in thread_local_alloc_ids. borrow ( ) . values ( ) . copied ( ) {
316- let ptr: Pointer < Option < Provenance > > = ptr. into ( ) ;
317- visit ( & Operand :: Indirect ( MemPlace :: from_ptr ( ptr) ) ) ;
316+ visit. visit ( ptr) ;
318317 }
319318 // FIXME: Do we need to do something for TimeoutCallback? That's a Box<dyn>, not sure what
320319 // to do.
0 commit comments