@@ -1728,13 +1728,8 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
1728
1728
}
1729
1729
1730
1730
let normalized_ident = ident. normalize_to_macros_2_0 ( ) ;
1731
- let mut outer_res = None ;
1732
- for rib in lifetime_rib_iter {
1733
- if let Some ( ( & outer, _) ) = rib. bindings . get_key_value ( & normalized_ident) {
1734
- outer_res = Some ( outer) ;
1735
- break ;
1736
- }
1737
- }
1731
+ let outer_res = lifetime_rib_iter
1732
+ . find_map ( |rib| rib. bindings . get_key_value ( & normalized_ident) . map ( |( & outer, _) | outer) ) ;
1738
1733
1739
1734
self . emit_undeclared_lifetime_error ( lifetime, outer_res) ;
1740
1735
self . record_lifetime_res ( lifetime. id , LifetimeRes :: Error , LifetimeElisionCandidate :: Named ) ;
@@ -1801,23 +1796,21 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
1801
1796
}
1802
1797
LifetimeRibKind :: AnonymousReportError => {
1803
1798
if elided {
1804
- let mut suggestion = None ;
1805
- for rib in self . lifetime_ribs [ i..] . iter ( ) . rev ( ) {
1799
+ let suggestion = self . lifetime_ribs [ i..] . iter ( ) . rev ( ) . find_map ( |rib| {
1806
1800
if let LifetimeRibKind :: Generics {
1807
1801
span,
1808
1802
kind : LifetimeBinderKind :: PolyTrait | LifetimeBinderKind :: WhereBound ,
1809
1803
..
1810
- } = & rib. kind
1804
+ } = rib. kind
1811
1805
{
1812
- suggestion =
1813
- Some ( errors :: ElidedAnonymousLivetimeReportErrorSuggestion {
1814
- lo : span. shrink_to_lo ( ) ,
1815
- hi : lifetime . ident . span . shrink_to_hi ( ) ,
1816
- } ) ;
1817
- break ;
1806
+ Some ( errors :: ElidedAnonymousLivetimeReportErrorSuggestion {
1807
+ lo : span . shrink_to_lo ( ) ,
1808
+ hi : lifetime . ident . span . shrink_to_hi ( ) ,
1809
+ } )
1810
+ } else {
1811
+ None
1818
1812
}
1819
- }
1820
-
1813
+ } ) ;
1821
1814
// are we trying to use an anonymous lifetime
1822
1815
// on a non GAT associated trait type?
1823
1816
if !self . in_func_body
@@ -2486,14 +2479,7 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
2486
2479
/// Determine whether or not a label from the `rib_index`th label rib is reachable.
2487
2480
fn is_label_valid_from_rib ( & self , rib_index : usize ) -> bool {
2488
2481
let ribs = & self . label_ribs [ rib_index + 1 ..] ;
2489
-
2490
- for rib in ribs {
2491
- if rib. kind . is_label_barrier ( ) {
2492
- return false ;
2493
- }
2494
- }
2495
-
2496
- true
2482
+ ribs. iter ( ) . all ( |rib| !rib. kind . is_label_barrier ( ) )
2497
2483
}
2498
2484
2499
2485
fn resolve_adt ( & mut self , item : & ' ast Item , generics : & ' ast Generics ) {
0 commit comments