@@ -394,7 +394,7 @@ fn non_elidable_self_type<'tcx>(cx: &LateContext<'tcx>, func: &FnDecl<'tcx>, ide
394
394
let mut visitor = RefVisitor :: new ( cx) ;
395
395
visitor. visit_ty_unambig ( self_ty) ;
396
396
397
- ! visitor. all_lts ( ) . is_empty ( )
397
+ visitor. all_lts ( ) . next ( ) . is_some ( )
398
398
} else {
399
399
false
400
400
}
@@ -404,7 +404,7 @@ fn non_elidable_self_type<'tcx>(cx: &LateContext<'tcx>, func: &FnDecl<'tcx>, ide
404
404
/// relative order.
405
405
#[ must_use]
406
406
fn named_lifetime_occurrences ( lts : & [ Lifetime ] ) -> Vec < ( LocalDefId , usize ) > {
407
- let mut occurrences = Vec :: new ( ) ;
407
+ let mut occurrences: Vec < ( LocalDefId , usize ) > = Vec :: new ( ) ;
408
408
for lt in lts {
409
409
if let Some ( curr_def_id) = named_lifetime ( lt) {
410
410
if let Some ( pair) = occurrences
@@ -444,12 +444,8 @@ impl<'a, 'tcx> RefVisitor<'a, 'tcx> {
444
444
}
445
445
}
446
446
447
- fn all_lts ( & self ) -> Vec < Lifetime > {
448
- self . lts
449
- . iter ( )
450
- . chain ( self . nested_elision_site_lts . iter ( ) )
451
- . copied ( )
452
- . collect :: < Vec < _ > > ( )
447
+ fn all_lts ( & self ) -> impl Iterator < Item = Lifetime > {
448
+ self . lts . iter ( ) . chain ( self . nested_elision_site_lts . iter ( ) ) . copied ( )
453
449
}
454
450
455
451
fn abort ( & self ) -> bool {
@@ -472,7 +468,7 @@ impl<'tcx> Visitor<'tcx> for RefVisitor<'_, 'tcx> {
472
468
{
473
469
let mut sub_visitor = RefVisitor :: new ( self . cx ) ;
474
470
sub_visitor. visit_trait_ref ( trait_ref) ;
475
- self . nested_elision_site_lts . append ( & mut sub_visitor. all_lts ( ) ) ;
471
+ self . nested_elision_site_lts . extend ( sub_visitor. all_lts ( ) ) ;
476
472
} else {
477
473
walk_poly_trait_ref ( self , poly_tref) ;
478
474
}
@@ -483,7 +479,7 @@ impl<'tcx> Visitor<'tcx> for RefVisitor<'_, 'tcx> {
483
479
TyKind :: FnPtr ( & FnPtrTy { decl, .. } ) => {
484
480
let mut sub_visitor = RefVisitor :: new ( self . cx ) ;
485
481
sub_visitor. visit_fn_decl ( decl) ;
486
- self . nested_elision_site_lts . append ( & mut sub_visitor. all_lts ( ) ) ;
482
+ self . nested_elision_site_lts . extend ( sub_visitor. all_lts ( ) ) ;
487
483
} ,
488
484
TyKind :: TraitObject ( bounds, lt) => {
489
485
if !lt. is_elided ( ) {
@@ -509,7 +505,7 @@ fn has_where_lifetimes<'tcx>(cx: &LateContext<'tcx>, generics: &'tcx Generics<'_
509
505
let mut visitor = RefVisitor :: new ( cx) ;
510
506
// walk the type F, it may not contain LT refs
511
507
walk_unambig_ty ( & mut visitor, pred. bounded_ty ) ;
512
- if ! visitor. all_lts ( ) . is_empty ( ) {
508
+ if visitor. all_lts ( ) . next ( ) . is_some ( ) {
513
509
return true ;
514
510
}
515
511
// if the bounds define new lifetimes, they are fine to occur
0 commit comments