@@ -1168,15 +1168,16 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
11681168 TyKind :: Ptr ( ref mt) => hir:: TyKind :: Ptr ( self . lower_mt ( mt, itctx) ) ,
11691169 TyKind :: Rptr ( ref region, ref mt) => {
11701170 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 ( )
11731178 } ;
1174- debug_assert_eq ! ( start. plus( 1 ) , end) ;
11751179 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 }
11801181 } ) ;
11811182 let lifetime = self . lower_lifetime ( & region) ;
11821183 hir:: TyKind :: Rptr ( lifetime, self . lower_mt ( mt, itctx) )
@@ -1835,10 +1836,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
18351836 fn lower_lifetime ( & mut self , l : & Lifetime ) -> hir:: Lifetime {
18361837 let span = self . lower_span ( l. ident . span ) ;
18371838 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 ) ;
18421840 self . new_named_lifetime_with_res ( l. id , span, ident, res)
18431841 }
18441842
0 commit comments