@@ -506,8 +506,17 @@ struct LifetimeChecker<'cx, 'tcx, F> {
506506}
507507
508508impl < ' 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 ( ) ;
511520 Self {
512521 cx,
513522 map,
@@ -556,17 +565,7 @@ where
556565}
557566
558567fn 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) ;
570569
571570 walk_generics ( & mut checker, generics) ;
572571 walk_fn_decl ( & mut checker, func) ;
@@ -587,18 +586,7 @@ fn report_extra_lifetimes<'tcx>(cx: &LateContext<'tcx>, func: &'tcx FnDecl<'_>,
587586}
588587
589588fn 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 ) ;
602590
603591 walk_generics ( & mut checker, impl_. generics ) ;
604592 if let Some ( ref trait_ref) = impl_. of_trait {
0 commit comments