@@ -1786,7 +1786,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
17861786 GenericArg :: Lifetime ( hir:: Lifetime {
17871787 hir_id : self . next_id ( ) ,
17881788 span : self . lower_span ( span) ,
1789- name : hir:: LifetimeName :: Implicit ,
1789+ name : hir:: LifetimeName :: Implicit ( false ) ,
17901790 } ) ) ) ;
17911791 let generic_args = self . arena . alloc_from_iter ( generic_args) ;
17921792
@@ -1927,8 +1927,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
19271927 } ) ;
19281928 let param_name = match lt. name {
19291929 hir:: LifetimeName :: Param ( param_name) => param_name,
1930- hir:: LifetimeName :: Implicit
1931- | hir:: LifetimeName :: ImplicitMissing
1930+ hir:: LifetimeName :: Implicit ( _)
19321931 | hir:: LifetimeName :: Underscore
19331932 | hir:: LifetimeName :: Static => hir:: ParamName :: Plain ( lt. name . ident ( ) ) ,
19341933 hir:: LifetimeName :: ImplicitObjectLifetimeDefault => {
@@ -2291,7 +2290,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
22912290
22922291 AnonymousLifetimeMode :: ReportError => self . new_error_lifetime ( None , span) ,
22932292
2294- AnonymousLifetimeMode :: PassThrough => self . new_implicit_lifetime ( span) ,
2293+ AnonymousLifetimeMode :: PassThrough => self . new_implicit_lifetime ( span, false ) ,
22952294 }
22962295 }
22972296
@@ -2344,12 +2343,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
23442343 // lifetime. Instead, we simply create an implicit lifetime, which will be checked
23452344 // later, at which point a suitable error will be emitted.
23462345 AnonymousLifetimeMode :: PassThrough | AnonymousLifetimeMode :: ReportError => {
2347- if param_mode == ParamMode :: Explicit {
2348- let id = self . resolver . next_node_id ( ) ;
2349- self . new_named_lifetime ( id, span, hir:: LifetimeName :: ImplicitMissing )
2350- } else {
2351- self . new_implicit_lifetime ( span)
2352- }
2346+ self . new_implicit_lifetime ( span, param_mode == ParamMode :: Explicit )
23532347 }
23542348 }
23552349 }
@@ -2392,11 +2386,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
23922386 r
23932387 }
23942388
2395- fn new_implicit_lifetime ( & mut self , span : Span ) -> hir:: Lifetime {
2389+ fn new_implicit_lifetime ( & mut self , span : Span , missing : bool ) -> hir:: Lifetime {
23962390 hir:: Lifetime {
23972391 hir_id : self . next_id ( ) ,
23982392 span : self . lower_span ( span) ,
2399- name : hir:: LifetimeName :: Implicit ,
2393+ name : hir:: LifetimeName :: Implicit ( missing ) ,
24002394 }
24012395 }
24022396
@@ -2543,9 +2537,7 @@ fn lifetimes_from_impl_trait_bounds(
25432537
25442538 fn visit_lifetime ( & mut self , lifetime : & ' v hir:: Lifetime ) {
25452539 let name = match lifetime. name {
2546- hir:: LifetimeName :: Implicit
2547- | hir:: LifetimeName :: ImplicitMissing
2548- | hir:: LifetimeName :: Underscore => {
2540+ hir:: LifetimeName :: Implicit ( _) | hir:: LifetimeName :: Underscore => {
25492541 if self . collect_elided_lifetimes {
25502542 // Use `'_` for both implicit and underscore lifetimes in
25512543 // `type Foo<'_> = impl SomeTrait<'_>;`.
0 commit comments