@@ -484,7 +484,7 @@ enum ParenthesizedGenericArgs {
484
484
/// an "elided" or "underscore" lifetime name. In the future, we probably want to move
485
485
/// everything into HIR lowering.
486
486
#[ derive( Copy , Clone , Debug ) ]
487
- enum AnonymousLifetimeMode {
487
+ pub enum AnonymousLifetimeMode {
488
488
/// For **Modern** cases, create a new anonymous region parameter
489
489
/// and reference that.
490
490
///
@@ -2017,16 +2017,16 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2017
2017
} ) ;
2018
2018
let param_name = match lt. name {
2019
2019
hir:: LifetimeName :: Param ( param_name) => param_name,
2020
- hir:: LifetimeName :: Implicit ( _)
2021
- | hir:: LifetimeName :: Underscore
2022
- | hir :: LifetimeName :: Static => hir :: ParamName :: Plain ( lt . name . ident ( ) ) ,
2020
+ hir:: LifetimeName :: Implicit ( _) | hir :: LifetimeName :: Underscore => {
2021
+ hir:: ParamName :: Plain ( lt . name . ident ( ) )
2022
+ }
2023
2023
hir:: LifetimeName :: ImplicitObjectLifetimeDefault => {
2024
2024
self . sess . diagnostic ( ) . span_bug (
2025
2025
param. ident . span ,
2026
2026
"object-lifetime-default should not occur here" ,
2027
2027
) ;
2028
2028
}
2029
- hir:: LifetimeName :: Error => ParamName :: Error ,
2029
+ hir:: LifetimeName :: Static | hir :: LifetimeName :: Error => ParamName :: Error ,
2030
2030
} ;
2031
2031
2032
2032
let kind =
@@ -2404,20 +2404,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2404
2404
/// Report an error on illegal use of `'_` or a `&T` with no explicit lifetime;
2405
2405
/// return an "error lifetime".
2406
2406
fn new_error_lifetime ( & mut self , id : Option < NodeId > , span : Span ) -> hir:: Lifetime {
2407
- let ( id, msg, label) = match id {
2408
- Some ( id) => ( id, "`'_` cannot be used here" , "`'_` is a reserved lifetime name" ) ,
2409
-
2410
- None => (
2411
- self . resolver . next_node_id ( ) ,
2412
- "`&` without an explicit lifetime name cannot be used here" ,
2413
- "explicit lifetime name needed here" ,
2414
- ) ,
2415
- } ;
2416
-
2417
- let mut err = struct_span_err ! ( self . sess, span, E0637 , "{}" , msg, ) ;
2418
- err. span_label ( span, label) ;
2419
- err. emit ( ) ;
2420
-
2407
+ let id = id. unwrap_or_else ( || self . resolver . next_node_id ( ) ) ;
2421
2408
self . new_named_lifetime ( id, span, hir:: LifetimeName :: Error )
2422
2409
}
2423
2410
0 commit comments