@@ -291,62 +291,60 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
291
291
// Creates lifetime name suggestions from the lifetime parameter names
292
292
fn get_lifetime_args_suggestions_from_param_names (
293
293
& self ,
294
- path_hir_id : Option < hir:: HirId > ,
294
+ path_hir_id : hir:: HirId ,
295
295
num_params_to_take : usize ,
296
296
) -> String {
297
297
debug ! ( ?path_hir_id) ;
298
298
299
- if let Some ( path_hir_id) = path_hir_id {
300
- let mut ret = Vec :: new ( ) ;
301
- for ( id, node) in self . tcx . hir ( ) . parent_iter ( path_hir_id) {
302
- debug ! ( ?id) ;
303
- let params = if let Some ( generics) = node. generics ( ) {
304
- generics. params
305
- } else if let hir:: Node :: Ty ( ty) = node
306
- && let hir:: TyKind :: BareFn ( bare_fn) = ty. kind
307
- {
308
- bare_fn. generic_params
309
- } else {
310
- & [ ]
311
- } ;
312
- ret. extend ( params. iter ( ) . filter_map ( |p| {
313
- let hir:: GenericParamKind :: Lifetime { kind : hir:: LifetimeParamKind :: Explicit }
314
- = p. kind
315
- else { return None } ;
316
- let hir:: ParamName :: Plain ( name) = p. name else { return None } ;
317
- Some ( name. to_string ( ) )
318
- } ) ) ;
319
- // Suggest `'static` when in const/static item-like.
320
- if let hir:: Node :: Item ( hir:: Item {
321
- kind : hir:: ItemKind :: Static { .. } | hir:: ItemKind :: Const { .. } ,
322
- ..
323
- } )
324
- | hir:: Node :: TraitItem ( hir:: TraitItem {
325
- kind : hir:: TraitItemKind :: Const { .. } ,
326
- ..
327
- } )
328
- | hir:: Node :: ImplItem ( hir:: ImplItem {
329
- kind : hir:: ImplItemKind :: Const { .. } ,
330
- ..
331
- } )
332
- | hir:: Node :: ForeignItem ( hir:: ForeignItem {
333
- kind : hir:: ForeignItemKind :: Static { .. } ,
334
- ..
335
- } )
336
- | hir:: Node :: AnonConst ( ..) = node
337
- {
338
- ret. extend (
339
- std:: iter:: repeat ( "'static" . to_owned ( ) )
340
- . take ( num_params_to_take. saturating_sub ( ret. len ( ) ) ) ,
341
- ) ;
342
- }
343
- if ret. len ( ) >= num_params_to_take {
344
- return ret[ ..num_params_to_take] . join ( ", " ) ;
345
- }
346
- // We cannot refer to lifetimes defined in an outer function.
347
- if let hir:: Node :: Item ( _) = node {
348
- break ;
349
- }
299
+ let mut ret = Vec :: new ( ) ;
300
+ for ( id, node) in self . tcx . hir ( ) . parent_iter ( path_hir_id) {
301
+ debug ! ( ?id) ;
302
+ let params = if let Some ( generics) = node. generics ( ) {
303
+ generics. params
304
+ } else if let hir:: Node :: Ty ( ty) = node
305
+ && let hir:: TyKind :: BareFn ( bare_fn) = ty. kind
306
+ {
307
+ bare_fn. generic_params
308
+ } else {
309
+ & [ ]
310
+ } ;
311
+ ret. extend ( params. iter ( ) . filter_map ( |p| {
312
+ let hir:: GenericParamKind :: Lifetime { kind : hir:: LifetimeParamKind :: Explicit }
313
+ = p. kind
314
+ else { return None } ;
315
+ let hir:: ParamName :: Plain ( name) = p. name else { return None } ;
316
+ Some ( name. to_string ( ) )
317
+ } ) ) ;
318
+ // Suggest `'static` when in const/static item-like.
319
+ if let hir:: Node :: Item ( hir:: Item {
320
+ kind : hir:: ItemKind :: Static { .. } | hir:: ItemKind :: Const { .. } ,
321
+ ..
322
+ } )
323
+ | hir:: Node :: TraitItem ( hir:: TraitItem {
324
+ kind : hir:: TraitItemKind :: Const { .. } ,
325
+ ..
326
+ } )
327
+ | hir:: Node :: ImplItem ( hir:: ImplItem {
328
+ kind : hir:: ImplItemKind :: Const { .. } ,
329
+ ..
330
+ } )
331
+ | hir:: Node :: ForeignItem ( hir:: ForeignItem {
332
+ kind : hir:: ForeignItemKind :: Static { .. } ,
333
+ ..
334
+ } )
335
+ | hir:: Node :: AnonConst ( ..) = node
336
+ {
337
+ ret. extend (
338
+ std:: iter:: repeat ( "'static" . to_owned ( ) )
339
+ . take ( num_params_to_take. saturating_sub ( ret. len ( ) ) ) ,
340
+ ) ;
341
+ }
342
+ if ret. len ( ) >= num_params_to_take {
343
+ return ret[ ..num_params_to_take] . join ( ", " ) ;
344
+ }
345
+ // We cannot refer to lifetimes defined in an outer function.
346
+ if let hir:: Node :: Item ( _) = node {
347
+ break ;
350
348
}
351
349
}
352
350
@@ -690,8 +688,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
690
688
num = num_trait_generics_except_self,
691
689
) ;
692
690
693
- if let Some ( hir_id) = self . path_segment . hir_id
694
- && let Some ( parent_node) = self . tcx . hir ( ) . find_parent_node ( hir_id)
691
+ if let Some ( parent_node) = self . tcx . hir ( ) . find_parent_node ( self . path_segment . hir_id )
695
692
&& let Some ( parent_node) = self . tcx . hir ( ) . find ( parent_node)
696
693
&& let hir:: Node :: Expr ( expr) = parent_node {
697
694
match expr. kind {
0 commit comments