});
self.super_basic_block_data(block, data);
}
+
fn visit_local(&mut self, l: &mut Local, _: PlaceContext, _: Location) {
*l = self.map[*l].unwrap();
}
+
+ fn visit_place(
+ &mut self,
+ place: &mut Place<'tcx>,
+ context: PlaceContext,
+ location: Location,
+ ) {
+ self.visit_place_base(&mut place.base, context, location);
+
+ let new_projection: Vec<_> = place.projection.iter().map(|elem|
+ if let PlaceElem::Index(local) = elem {
+ PlaceElem::Index(self.map[*local].unwrap())
+ } else {
+ elem.clone()
+ }
+ ).collect();
+
+ place.projection = new_projection.into_boxed_slice();
+ }
}