about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform
diff options
context:
space:
mode:
authorCamille Gillot <gillot.camille@gmail.com>2025-08-19 23:27:06 +0000
committerCamille Gillot <gillot.camille@gmail.com>2025-09-07 16:36:22 +0000
commitde7c633ee5a20f938819033b1111777bd6496a3b (patch)
treeaa6ff60fec417f435350f92124c4f984997d552e /compiler/rustc_mir_transform
parentb9262bce67f6d924d17632bf5539e4745e7b3a29 (diff)
downloadrust-de7c633ee5a20f938819033b1111777bd6496a3b.tar.gz
rust-de7c633ee5a20f938819033b1111777bd6496a3b.zip
Simplify VisitPlacesWith.
Diffstat (limited to 'compiler/rustc_mir_transform')
-rw-r--r--compiler/rustc_mir_transform/src/dest_prop.rs25
1 files changed, 7 insertions, 18 deletions
diff --git a/compiler/rustc_mir_transform/src/dest_prop.rs b/compiler/rustc_mir_transform/src/dest_prop.rs
index aa9b0a961ea..fde45229d52 100644
--- a/compiler/rustc_mir_transform/src/dest_prop.rs
+++ b/compiler/rustc_mir_transform/src/dest_prop.rs
@@ -141,7 +141,7 @@ use rustc_data_structures::fx::FxIndexMap;
 use rustc_index::bit_set::DenseBitSet;
 use rustc_index::interval::SparseIntervalMatrix;
 use rustc_index::{IndexVec, newtype_index};
-use rustc_middle::mir::visit::{MutVisitor, NonMutatingUseContext, PlaceContext, Visitor};
+use rustc_middle::mir::visit::{MutVisitor, PlaceContext, Visitor};
 use rustc_middle::mir::*;
 use rustc_middle::ty::TyCtxt;
 use rustc_mir_dataflow::impls::{DefUse, MaybeLiveLocals};
@@ -555,24 +555,13 @@ impl<'tcx, F> Visitor<'tcx> for VisitPlacesWith<F>
 where
     F: FnMut(Place<'tcx>, PlaceContext),
 {
-    fn visit_place(&mut self, place: &Place<'tcx>, ctxt: PlaceContext, _: Location) {
+    fn visit_local(&mut self, local: Local, ctxt: PlaceContext, _: Location) {
+        (self.0)(local.into(), ctxt);
+    }
+
+    fn visit_place(&mut self, place: &Place<'tcx>, ctxt: PlaceContext, location: Location) {
         (self.0)(*place, ctxt);
-        for proj in place.projection.iter() {
-            match proj {
-                ProjectionElem::Index(index) => (self.0)(
-                    index.into(),
-                    PlaceContext::NonMutatingUse(NonMutatingUseContext::Copy),
-                ),
-                ProjectionElem::Deref
-                | ProjectionElem::Field(..)
-                | ProjectionElem::Downcast(..)
-                | ProjectionElem::ConstantIndex { .. }
-                | ProjectionElem::Subslice { .. }
-                | ProjectionElem::OpaqueCast(..)
-                | ProjectionElem::UnwrapUnsafeBinder(..)
-                | ProjectionElem::Subtype(..) => {}
-            };
-        }
+        self.visit_projection(place.as_ref(), ctxt, location);
     }
 }