@@ -506,8 +506,17 @@ struct LifetimeChecker<'cx, 'tcx, F> {
506
506
}
507
507
508
508
impl < ' cx , ' tcx , F > LifetimeChecker < ' cx , ' tcx , F > {
509
- fn new ( cx : & ' cx LateContext < ' tcx > , def_ids : Vec < LocalDefId > ) -> LifetimeChecker < ' cx , ' tcx , F > {
510
- let map = def_ids. into_iter ( ) . map ( |def_id| ( def_id, Vec :: new ( ) ) ) . collect ( ) ;
509
+ fn new ( cx : & ' cx LateContext < ' tcx > , generics : & ' tcx Generics < ' _ > ) -> LifetimeChecker < ' cx , ' tcx , F > {
510
+ let map = generics
511
+ . params
512
+ . iter ( )
513
+ . filter_map ( |par| match par. kind {
514
+ GenericParamKind :: Lifetime {
515
+ kind : LifetimeParamKind :: Explicit ,
516
+ } => Some ( ( par. def_id , Vec :: new ( ) ) ) ,
517
+ _ => None ,
518
+ } )
519
+ . collect ( ) ;
511
520
Self {
512
521
cx,
513
522
map,
@@ -556,17 +565,7 @@ where
556
565
}
557
566
558
567
fn report_extra_lifetimes < ' tcx > ( cx : & LateContext < ' tcx > , func : & ' tcx FnDecl < ' _ > , generics : & ' tcx Generics < ' _ > ) {
559
- let def_ids = generics
560
- . params
561
- . iter ( )
562
- . filter_map ( |par| match par. kind {
563
- GenericParamKind :: Lifetime {
564
- kind : LifetimeParamKind :: Explicit ,
565
- } => Some ( par. def_id ) ,
566
- _ => None ,
567
- } )
568
- . collect ( ) ;
569
- let mut checker = LifetimeChecker :: < hir_nested_filter:: None > :: new ( cx, def_ids) ;
568
+ let mut checker = LifetimeChecker :: < hir_nested_filter:: None > :: new ( cx, generics) ;
570
569
571
570
walk_generics ( & mut checker, generics) ;
572
571
walk_fn_decl ( & mut checker, func) ;
@@ -587,18 +586,7 @@ fn report_extra_lifetimes<'tcx>(cx: &LateContext<'tcx>, func: &'tcx FnDecl<'_>,
587
586
}
588
587
589
588
fn report_extra_impl_lifetimes < ' tcx > ( cx : & LateContext < ' tcx > , impl_ : & ' tcx Impl < ' _ > ) {
590
- let def_ids = impl_
591
- . generics
592
- . params
593
- . iter ( )
594
- . filter_map ( |par| match par. kind {
595
- GenericParamKind :: Lifetime {
596
- kind : LifetimeParamKind :: Explicit ,
597
- } => Some ( par. def_id ) ,
598
- _ => None ,
599
- } )
600
- . collect ( ) ;
601
- let mut checker = LifetimeChecker :: < middle_nested_filter:: All > :: new ( cx, def_ids) ;
589
+ let mut checker = LifetimeChecker :: < middle_nested_filter:: All > :: new ( cx, impl_. generics ) ;
602
590
603
591
walk_generics ( & mut checker, impl_. generics ) ;
604
592
if let Some ( ref trait_ref) = impl_. of_trait {
0 commit comments