@@ -182,15 +182,15 @@ impl<'mir, 'tcx> Thread<'mir, 'tcx> {
182
182
}
183
183
184
184
impl VisitMachineValues for Thread < ' _ , ' _ > {
185
- fn visit_machine_values ( & self , visit : & mut impl FnMut ( & Operand < Provenance > ) ) {
185
+ fn visit_machine_values ( & self , visit : & mut ProvenanceVisitor ) {
186
186
let Thread { panic_payload, last_error, stack, state : _, thread_name : _, join_status : _ } =
187
187
self ;
188
188
189
189
if let Some ( payload) = panic_payload {
190
- visit ( & Operand :: Immediate ( Immediate :: Scalar ( * payload) ) )
190
+ visit. visit ( * payload) ;
191
191
}
192
192
if let Some ( error) = last_error {
193
- visit ( & Operand :: Indirect ( * * error) )
193
+ visit. visit ( * * error) ;
194
194
}
195
195
for frame in stack {
196
196
frame. visit_machine_values ( visit)
@@ -199,7 +199,7 @@ impl VisitMachineValues for Thread<'_, '_> {
199
199
}
200
200
201
201
impl 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 ) {
203
203
let Frame {
204
204
return_place,
205
205
locals,
@@ -213,12 +213,12 @@ impl VisitMachineValues for Frame<'_, '_, Provenance, FrameData<'_>> {
213
213
214
214
// Return place.
215
215
if let Place :: Ptr ( mplace) = * * return_place {
216
- visit ( & Operand :: Indirect ( mplace) ) ;
216
+ visit. visit ( mplace) ;
217
217
}
218
218
// Locals.
219
219
for local in locals. iter ( ) {
220
220
if let LocalValue :: Live ( value) = & local. value {
221
- visit ( value) ;
221
+ visit. visit ( value) ;
222
222
}
223
223
}
224
224
@@ -299,7 +299,7 @@ impl<'mir, 'tcx> Default for ThreadManager<'mir, 'tcx> {
299
299
}
300
300
301
301
impl VisitMachineValues for ThreadManager < ' _ , ' _ > {
302
- fn visit_machine_values ( & self , visit : & mut impl FnMut ( & Operand < Provenance > ) ) {
302
+ fn visit_machine_values ( & self , visit : & mut ProvenanceVisitor ) {
303
303
let ThreadManager {
304
304
threads,
305
305
thread_local_alloc_ids,
@@ -313,8 +313,7 @@ impl VisitMachineValues for ThreadManager<'_, '_> {
313
313
thread. visit_machine_values ( visit) ;
314
314
}
315
315
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) ;
318
317
}
319
318
// FIXME: Do we need to do something for TimeoutCallback? That's a Box<dyn>, not sure what
320
319
// to do.
0 commit comments