@@ -1168,15 +1168,16 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1168
1168
TyKind :: Ptr ( ref mt) => hir:: TyKind :: Ptr ( self . lower_mt ( mt, itctx) ) ,
1169
1169
TyKind :: Rptr ( ref region, ref mt) => {
1170
1170
let region = region. unwrap_or_else ( || {
1171
- let Some ( LifetimeRes :: ElidedAnchor { start, end } ) = self . resolver . get_lifetime_res ( t. id ) else {
1172
- panic ! ( )
1171
+ let id = if let Some ( LifetimeRes :: ElidedAnchor { start, end } ) =
1172
+ self . resolver . get_lifetime_res ( t. id )
1173
+ {
1174
+ debug_assert_eq ! ( start. plus( 1 ) , end) ;
1175
+ start
1176
+ } else {
1177
+ self . resolver . next_node_id ( )
1173
1178
} ;
1174
- debug_assert_eq ! ( start. plus( 1 ) , end) ;
1175
1179
let span = self . sess . source_map ( ) . next_point ( t. span . shrink_to_lo ( ) ) ;
1176
- Lifetime {
1177
- ident : Ident :: new ( kw:: UnderscoreLifetime , span) ,
1178
- id : start,
1179
- }
1180
+ Lifetime { ident : Ident :: new ( kw:: UnderscoreLifetime , span) , id }
1180
1181
} ) ;
1181
1182
let lifetime = self . lower_lifetime ( & region) ;
1182
1183
hir:: TyKind :: Rptr ( lifetime, self . lower_mt ( mt, itctx) )
@@ -1835,10 +1836,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1835
1836
fn lower_lifetime ( & mut self , l : & Lifetime ) -> hir:: Lifetime {
1836
1837
let span = self . lower_span ( l. ident . span ) ;
1837
1838
let ident = self . lower_ident ( l. ident ) ;
1838
- let res = self
1839
- . resolver
1840
- . get_lifetime_res ( l. id )
1841
- . unwrap_or_else ( || panic ! ( "Missing resolution for lifetime {:?} at {:?}" , l, span) ) ;
1839
+ let res = self . resolver . get_lifetime_res ( l. id ) . unwrap_or ( LifetimeRes :: Error ) ;
1842
1840
self . new_named_lifetime_with_res ( l. id , span, ident, res)
1843
1841
}
1844
1842
0 commit comments