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