@@ -1786,7 +1786,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1786
1786
GenericArg :: Lifetime ( hir:: Lifetime {
1787
1787
hir_id : self . next_id ( ) ,
1788
1788
span : self . lower_span ( span) ,
1789
- name : hir:: LifetimeName :: Implicit ,
1789
+ name : hir:: LifetimeName :: Implicit ( false ) ,
1790
1790
} ) ) ) ;
1791
1791
let generic_args = self . arena . alloc_from_iter ( generic_args) ;
1792
1792
@@ -1927,8 +1927,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1927
1927
} ) ;
1928
1928
let param_name = match lt. name {
1929
1929
hir:: LifetimeName :: Param ( param_name) => param_name,
1930
- hir:: LifetimeName :: Implicit
1931
- | hir:: LifetimeName :: ImplicitMissing
1930
+ hir:: LifetimeName :: Implicit ( _)
1932
1931
| hir:: LifetimeName :: Underscore
1933
1932
| hir:: LifetimeName :: Static => hir:: ParamName :: Plain ( lt. name . ident ( ) ) ,
1934
1933
hir:: LifetimeName :: ImplicitObjectLifetimeDefault => {
@@ -2291,7 +2290,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2291
2290
2292
2291
AnonymousLifetimeMode :: ReportError => self . new_error_lifetime ( None , span) ,
2293
2292
2294
- AnonymousLifetimeMode :: PassThrough => self . new_implicit_lifetime ( span) ,
2293
+ AnonymousLifetimeMode :: PassThrough => self . new_implicit_lifetime ( span, false ) ,
2295
2294
}
2296
2295
}
2297
2296
@@ -2344,12 +2343,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2344
2343
// lifetime. Instead, we simply create an implicit lifetime, which will be checked
2345
2344
// later, at which point a suitable error will be emitted.
2346
2345
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 )
2353
2347
}
2354
2348
}
2355
2349
}
@@ -2392,11 +2386,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2392
2386
r
2393
2387
}
2394
2388
2395
- fn new_implicit_lifetime ( & mut self , span : Span ) -> hir:: Lifetime {
2389
+ fn new_implicit_lifetime ( & mut self , span : Span , missing : bool ) -> hir:: Lifetime {
2396
2390
hir:: Lifetime {
2397
2391
hir_id : self . next_id ( ) ,
2398
2392
span : self . lower_span ( span) ,
2399
- name : hir:: LifetimeName :: Implicit ,
2393
+ name : hir:: LifetimeName :: Implicit ( missing ) ,
2400
2394
}
2401
2395
}
2402
2396
@@ -2543,9 +2537,7 @@ fn lifetimes_from_impl_trait_bounds(
2543
2537
2544
2538
fn visit_lifetime ( & mut self , lifetime : & ' v hir:: Lifetime ) {
2545
2539
let name = match lifetime. name {
2546
- hir:: LifetimeName :: Implicit
2547
- | hir:: LifetimeName :: ImplicitMissing
2548
- | hir:: LifetimeName :: Underscore => {
2540
+ hir:: LifetimeName :: Implicit ( _) | hir:: LifetimeName :: Underscore => {
2549
2541
if self . collect_elided_lifetimes {
2550
2542
// Use `'_` for both implicit and underscore lifetimes in
2551
2543
// `type Foo<'_> = impl SomeTrait<'_>;`.
0 commit comments