Skip to content

Commit 35399f0

Browse files
committed
Simplify VisitPlacesWith.
1 parent d01aa20 commit 35399f0

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};
@@ -543,24 +543,13 @@ impl<'tcx, F> Visitor<'tcx> for VisitPlacesWith<F>
543543
where
544544
F: FnMut(Place<'tcx>, PlaceContext),
545545
{
546-
fn visit_place(&mut self, place: &Place<'tcx>, ctxt: PlaceContext, _: Location) {
546+
fn visit_local(&mut self, local: Local, ctxt: PlaceContext, _: Location) {
547+
(self.0)(local.into(), ctxt);
548+
}
549+
550+
fn visit_place(&mut self, place: &Place<'tcx>, ctxt: PlaceContext, location: Location) {
547551
(self.0)(*place, ctxt);
548-
for proj in place.projection.iter() {
549-
match proj {
550-
ProjectionElem::Index(index) => (self.0)(
551-
index.into(),
552-
PlaceContext::NonMutatingUse(NonMutatingUseContext::Copy),
553-
),
554-
ProjectionElem::Deref
555-
| ProjectionElem::Field(..)
556-
| ProjectionElem::Downcast(..)
557-
| ProjectionElem::ConstantIndex { .. }
558-
| ProjectionElem::Subslice { .. }
559-
| ProjectionElem::OpaqueCast(..)
560-
| ProjectionElem::UnwrapUnsafeBinder(..)
561-
| ProjectionElem::Subtype(..) => {}
562-
};
563-
}
552+
self.visit_projection(place.as_ref(), ctxt, location);
564553
}
565554
}
566555

0 commit comments

Comments
 (0)