@@ -29,6 +29,17 @@ impl<'ast> LifetimeCollectVisitor<'ast> {
29
29
}
30
30
}
31
31
}
32
+
33
+ fn record_elided_anchor ( & mut self , node_id : NodeId , span : Span ) {
34
+ if let Some ( LifetimeRes :: ElidedAnchor { start, end } ) =
35
+ self . resolver . get_lifetime_res ( node_id)
36
+ {
37
+ for i in start..end {
38
+ let lifetime = Lifetime { id : i, ident : Ident :: new ( kw:: UnderscoreLifetime , span) } ;
39
+ self . record_lifetime_use ( lifetime) ;
40
+ }
41
+ }
42
+ }
32
43
}
33
44
34
45
impl < ' ast > Visitor < ' ast > for LifetimeCollectVisitor < ' ast > {
@@ -37,15 +48,7 @@ impl<'ast> Visitor<'ast> for LifetimeCollectVisitor<'ast> {
37
48
}
38
49
39
50
fn visit_path_segment ( & mut self , path_span : Span , path_segment : & ' ast PathSegment ) {
40
- if let Some ( LifetimeRes :: ElidedAnchor { start, end } ) =
41
- self . resolver . get_lifetime_res ( path_segment. id )
42
- {
43
- for i in start..end {
44
- let lifetime =
45
- Lifetime { id : i, ident : Ident :: new ( kw:: UnderscoreLifetime , path_span) } ;
46
- self . record_lifetime_use ( lifetime) ;
47
- }
48
- }
51
+ self . record_elided_anchor ( path_segment. id , path_span) ;
49
52
visit:: walk_path_segment ( self , path_span, path_segment) ;
50
53
}
51
54
@@ -65,15 +68,7 @@ impl<'ast> Visitor<'ast> for LifetimeCollectVisitor<'ast> {
65
68
self . current_binders . pop ( ) ;
66
69
}
67
70
TyKind :: Rptr ( None , _) => {
68
- if let Some ( LifetimeRes :: ElidedAnchor { start, end } ) =
69
- self . resolver . get_lifetime_res ( t. id )
70
- {
71
- for i in start..end {
72
- let lifetime =
73
- Lifetime { id : i, ident : Ident :: new ( kw:: UnderscoreLifetime , t. span ) } ;
74
- self . record_lifetime_use ( lifetime) ;
75
- }
76
- }
71
+ self . record_elided_anchor ( t. id , t. span ) ;
77
72
visit:: walk_ty ( self , t) ;
78
73
}
79
74
_ => {
0 commit comments