Skip to content

Commit de7c633

Browse files
committed
Simplify VisitPlacesWith.
1 parent b9262bc commit de7c633

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

compiler/rustc_mir_transform/src/dest_prop.rs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ use rustc_data_structures::fx::FxIndexMap;
141141
use rustc_index::bit_set::DenseBitSet;
142142
use rustc_index::interval::SparseIntervalMatrix;
143143
use rustc_index::{IndexVec, newtype_index};
144-
use rustc_middle::mir::visit::{MutVisitor, NonMutatingUseContext, PlaceContext, Visitor};
144+
use rustc_middle::mir::visit::{MutVisitor, PlaceContext, Visitor};
145145
use rustc_middle::mir::*;
146146
use rustc_middle::ty::TyCtxt;
147147
use rustc_mir_dataflow::impls::{DefUse, MaybeLiveLocals};
@@ -555,24 +555,13 @@ impl<'tcx, F> Visitor<'tcx> for VisitPlacesWith<F>
555555
where
556556
F: FnMut(Place<'tcx>, PlaceContext),
557557
{
558-
fn visit_place(&mut self, place: &Place<'tcx>, ctxt: PlaceContext, _: Location) {
558+
fn visit_local(&mut self, local: Local, ctxt: PlaceContext, _: Location) {
559+
(self.0)(local.into(), ctxt);
560+
}
561+
562+
fn visit_place(&mut self, place: &Place<'tcx>, ctxt: PlaceContext, location: Location) {
559563
(self.0)(*place, ctxt);
560-
for proj in place.projection.iter() {
561-
match proj {
562-
ProjectionElem::Index(index) => (self.0)(
563-
index.into(),
564-
PlaceContext::NonMutatingUse(NonMutatingUseContext::Copy),
565-
),
566-
ProjectionElem::Deref
567-
| ProjectionElem::Field(..)
568-
| ProjectionElem::Downcast(..)
569-
| ProjectionElem::ConstantIndex { .. }
570-
| ProjectionElem::Subslice { .. }
571-
| ProjectionElem::OpaqueCast(..)
572-
| ProjectionElem::UnwrapUnsafeBinder(..)
573-
| ProjectionElem::Subtype(..) => {}
574-
};
575-
}
564+
self.visit_projection(place.as_ref(), ctxt, location);
576565
}
577566
}
578567

0 commit comments

Comments
 (0)