@@ -612,12 +612,16 @@ impl<'a> LoweringContext<'a> {
612612 // This is used to track which lifetimes have already been defined, and
613613 // which are new in-band lifetimes that need to have a definition created
614614 // for them.
615- fn with_in_scope_lifetime_defs < T , F > ( & mut self , lt_defs : & [ LifetimeDef ] , f : F ) -> T
615+ fn with_in_scope_lifetime_defs < ' l , T , F > (
616+ & mut self ,
617+ lt_defs : impl Iterator < Item = & ' l LifetimeDef > ,
618+ f : F ,
619+ ) -> T
616620 where
617621 F : FnOnce ( & mut LoweringContext ) -> T ,
618622 {
619623 let old_len = self . in_scope_lifetimes . len ( ) ;
620- let lt_def_names = lt_defs. iter ( ) . map ( |lt_def| lt_def. lifetime . ident . name ) ;
624+ let lt_def_names = lt_defs. map ( |lt_def| lt_def. lifetime . ident . name ) ;
621625 self . in_scope_lifetimes . extend ( lt_def_names) ;
622626
623627 let res = f ( self ) ;
@@ -657,14 +661,13 @@ impl<'a> LoweringContext<'a> {
657661 F : FnOnce ( & mut LoweringContext ) -> T ,
658662 {
659663 let ( in_band_defs, ( mut lowered_generics, res) ) = self . with_in_scope_lifetime_defs (
660- & generics
664+ generics
661665 . params
662666 . iter ( )
663- . filter_map ( |p| match * p {
664- GenericParam :: Lifetime ( ref ld) => Some ( ld. clone ( ) ) ,
667+ . filter_map ( |p| match p {
668+ GenericParam :: Lifetime ( ld) => Some ( ld) ,
665669 _ => None ,
666- } )
667- . collect :: < Vec < _ > > ( ) ,
670+ } ) ,
668671 |this| {
669672 this. collect_in_band_defs ( parent_id, |this| {
670673 ( this. lower_generics ( generics) , f ( this) )
@@ -923,13 +926,12 @@ impl<'a> LoweringContext<'a> {
923926 hir:: TyRptr ( lifetime, self . lower_mt ( mt, itctx) )
924927 }
925928 TyKind :: BareFn ( ref f) => self . with_in_scope_lifetime_defs (
926- & f. generic_params
929+ f. generic_params
927930 . iter ( )
928- . filter_map ( |p| match * p {
929- GenericParam :: Lifetime ( ref ld) => Some ( ld. clone ( ) ) ,
931+ . filter_map ( |p| match p {
932+ GenericParam :: Lifetime ( ld) => Some ( ld) ,
930933 _ => None ,
931- } )
932- . collect :: < Vec < _ > > ( ) ,
934+ } ) ,
933935 |this| {
934936 hir:: TyBareFn ( P ( hir:: BareFnTy {
935937 generic_params : this. lower_generic_params ( & f. generic_params , & NodeMap ( ) ) ,
@@ -1874,13 +1876,12 @@ impl<'a> LoweringContext<'a> {
18741876 span,
18751877 } ) => {
18761878 self . with_in_scope_lifetime_defs (
1877- & bound_generic_params
1879+ bound_generic_params
18781880 . iter ( )
1879- . filter_map ( |p| match * p {
1880- GenericParam :: Lifetime ( ref ld) => Some ( ld. clone ( ) ) ,
1881+ . filter_map ( |p| match p {
1882+ GenericParam :: Lifetime ( ld) => Some ( ld) ,
18811883 _ => None ,
1882- } )
1883- . collect :: < Vec < _ > > ( ) ,
1884+ } ) ,
18841885 |this| {
18851886 hir:: WherePredicate :: BoundPredicate ( hir:: WhereBoundPredicate {
18861887 bound_generic_params : this. lower_generic_params (
@@ -2169,14 +2170,13 @@ impl<'a> LoweringContext<'a> {
21692170 } ) ;
21702171
21712172 let new_impl_items = self . with_in_scope_lifetime_defs (
2172- & ast_generics
2173+ ast_generics
21732174 . params
21742175 . iter ( )
2175- . filter_map ( |p| match * p {
2176- GenericParam :: Lifetime ( ref ld) => Some ( ld. clone ( ) ) ,
2176+ . filter_map ( |p| match p {
2177+ GenericParam :: Lifetime ( ld) => Some ( ld) ,
21772178 _ => None ,
2178- } )
2179- . collect :: < Vec < _ > > ( ) ,
2179+ } ) ,
21802180 |this| {
21812181 impl_items
21822182 . iter ( )
0 commit comments