@@ -1169,15 +1169,16 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1169
1169
TyKind :: Ptr ( ref mt) => hir:: TyKind :: Ptr ( self . lower_mt ( mt, itctx) ) ,
1170
1170
TyKind :: Rptr ( ref region, ref mt) => {
1171
1171
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 ( )
1174
1179
} ;
1175
- debug_assert_eq ! ( start. plus( 1 ) , end) ;
1176
1180
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 }
1181
1182
} ) ;
1182
1183
let lifetime = self . lower_lifetime ( & region) ;
1183
1184
hir:: TyKind :: Rptr ( lifetime, self . lower_mt ( mt, itctx) )
@@ -1836,10 +1837,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1836
1837
fn lower_lifetime ( & mut self , l : & Lifetime ) -> hir:: Lifetime {
1837
1838
let span = self . lower_span ( l. ident . span ) ;
1838
1839
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 ) ;
1843
1841
self . new_named_lifetime_with_res ( l. id , span, ident, res)
1844
1842
}
1845
1843
0 commit comments