about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2022-08-04 10:10:04 -0300
committerSantiago Pastorino <spastorino@gmail.com>2022-08-04 11:27:02 -0300
commitf8b1b2bdfb0baf687873af1bbcbb7292bc39a3f7 (patch)
tree997fc50e24accc1855c477bcbd2a7b64035496f1
parent9f10f589a78b0ed864884b6ab108fbd081ce2a8d (diff)
downloadrust-f8b1b2bdfb0baf687873af1bbcbb7292bc39a3f7.tar.gz
rust-f8b1b2bdfb0baf687873af1bbcbb7292bc39a3f7.zip
Extract record_elided_anchor
-rw-r--r--compiler/rustc_ast_lowering/src/lifetime_collector.rs31
1 files changed, 13 insertions, 18 deletions
diff --git a/compiler/rustc_ast_lowering/src/lifetime_collector.rs b/compiler/rustc_ast_lowering/src/lifetime_collector.rs
index 4a7106f8da0..1a9677919d0 100644
--- a/compiler/rustc_ast_lowering/src/lifetime_collector.rs
+++ b/compiler/rustc_ast_lowering/src/lifetime_collector.rs
@@ -29,6 +29,17 @@ impl<'ast> LifetimeCollectVisitor<'ast> {
             }
         }
     }
+
+    fn record_elided_anchor(&mut self, node_id: NodeId, span: Span) {
+        if let Some(LifetimeRes::ElidedAnchor { start, end }) =
+            self.resolver.get_lifetime_res(node_id)
+        {
+            for i in start..end {
+                let lifetime = Lifetime { id: i, ident: Ident::new(kw::UnderscoreLifetime, span) };
+                self.record_lifetime_use(lifetime);
+            }
+        }
+    }
 }
 
 impl<'ast> Visitor<'ast> for LifetimeCollectVisitor<'ast> {
@@ -37,15 +48,7 @@ impl<'ast> Visitor<'ast> for LifetimeCollectVisitor<'ast> {
     }
 
     fn visit_path_segment(&mut self, path_span: Span, path_segment: &'ast PathSegment) {
-        if let Some(LifetimeRes::ElidedAnchor { start, end }) =
-            self.resolver.get_lifetime_res(path_segment.id)
-        {
-            for i in start..end {
-                let lifetime =
-                    Lifetime { id: i, ident: Ident::new(kw::UnderscoreLifetime, path_span) };
-                self.record_lifetime_use(lifetime);
-            }
-        }
+        self.record_elided_anchor(path_segment.id, path_span);
         visit::walk_path_segment(self, path_span, path_segment);
     }
 
@@ -65,15 +68,7 @@ impl<'ast> Visitor<'ast> for LifetimeCollectVisitor<'ast> {
                 self.current_binders.pop();
             }
             TyKind::Rptr(None, _) => {
-                if let Some(LifetimeRes::ElidedAnchor { start, end }) =
-                    self.resolver.get_lifetime_res(t.id)
-                {
-                    for i in start..end {
-                        let lifetime =
-                            Lifetime { id: i, ident: Ident::new(kw::UnderscoreLifetime, t.span) };
-                        self.record_lifetime_use(lifetime);
-                    }
-                }
+                self.record_elided_anchor(t.id, t.span);
                 visit::walk_ty(self, t);
             }
             _ => {