]> git.lizzy.rs Git - rust.git/commitdiff
Place::iterate do not take an accumulator anymore, hide that in a private fn
authorSantiago Pastorino <spastorino@gmail.com>
Wed, 27 Feb 2019 20:27:50 +0000 (21:27 +0100)
committerSantiago Pastorino <spastorino@gmail.com>
Wed, 17 Apr 2019 17:44:17 +0000 (19:44 +0200)
src/librustc/mir/mod.rs
src/librustc_mir/borrow_check/places_conflict.rs

index 60c7c256ec74e13f61c396ce7274a39d900e1926..047f338ab67ca5b58738838a3135e5d579162d94 100644 (file)
@@ -2062,12 +2062,19 @@ pub fn base_local(&self) -> Option<Local> {
     /// Recursively "iterates" over place components, generating a `PlaceComponents` list,
     /// invoking `op` with a `PlaceComponentsIter`.
     pub fn iterate<R>(
+        &self,
+        op: impl FnOnce(PlaceComponentsIter<'_, 'tcx>) -> R,
+    ) -> R {
+        self.iterate2(None, op)
+    }
+
+    fn iterate2<R>(
         &self,
         next: Option<&PlaceComponents<'_, 'tcx>>,
         op: impl FnOnce(PlaceComponentsIter<'_, 'tcx>) -> R,
     ) -> R {
         match self {
-            Place::Projection(interior) => interior.base.iterate(
+            Place::Projection(interior) => interior.base.iterate2(
                 Some(&PlaceComponents {
                     component: self,
                     next,
index 45bbbbc92d9abb7eba2aa3b721564b2f8b68c26d..c498d7f7d9685010e7dcb84168d5a785bf21d4eb 100644 (file)
@@ -67,8 +67,8 @@ pub(super) fn borrow_conflicts_with_place<'gcx, 'tcx>(
         }
     }
 
-    borrow_place.iterate(None, |borrow_components| {
-        access_place.iterate(None, |access_components| {
+    borrow_place.iterate(|borrow_components| {
+        access_place.iterate(|access_components| {
             place_components_conflict(
                 tcx,
                 mir,