14
14
use core:: cmp:: Ordering :: { self , Less , Greater , Equal } ;
15
15
use core:: fmt:: Debug ;
16
16
use core:: fmt;
17
- use core:: iter:: { Peekable , Map , FromIterator } ;
17
+ use core:: iter:: { Peekable , FromIterator } ;
18
18
use core:: ops:: { BitOr , BitAnd , BitXor , Sub } ;
19
19
20
20
use borrow:: Borrow ;
@@ -52,12 +52,12 @@ pub struct Iter<'a, T: 'a> {
52
52
/// An owning iterator over a BTreeSet's items.
53
53
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
54
54
pub struct IntoIter < T > {
55
- iter : Map < :: btree_map:: IntoIter < T , ( ) > , fn ( ( T , ( ) ) ) -> T > ,
55
+ iter : :: btree_map:: IntoIter < T , ( ) > ,
56
56
}
57
57
58
58
/// An iterator over a sub-range of BTreeSet's items.
59
59
pub struct Range < ' a , T : ' a > {
60
- iter : Map < :: btree_map:: Range < ' a , T , ( ) > , fn ( ( & ' a T , & ' a ( ) ) ) -> & ' a T > ,
60
+ iter : :: btree_map:: Range < ' a , T , ( ) > ,
61
61
}
62
62
63
63
/// A lazy iterator producing elements in the set difference (in-order).
@@ -160,12 +160,7 @@ impl<T: Ord> BTreeSet<T> {
160
160
-> Range < ' a , T >
161
161
where T : Borrow < Min > + Borrow < Max >
162
162
{
163
- fn first < A , B > ( ( a, _) : ( A , B ) ) -> A {
164
- a
165
- }
166
- let first: fn ( ( & ' a T , & ' a ( ) ) ) -> & ' a T = first; // coerce to fn pointer
167
-
168
- Range { iter : self . map . range ( min, max) . map ( first) }
163
+ Range { iter : self . map . range ( min, max) }
169
164
}
170
165
}
171
166
@@ -548,12 +543,7 @@ impl<T> IntoIterator for BTreeSet<T> {
548
543
/// assert_eq!(v, [1, 2, 3, 4]);
549
544
/// ```
550
545
fn into_iter ( self ) -> IntoIter < T > {
551
- fn first < A , B > ( ( a, _) : ( A , B ) ) -> A {
552
- a
553
- }
554
- let first: fn ( ( T , ( ) ) ) -> T = first; // coerce to fn pointer
555
-
556
- IntoIter { iter : self . map . into_iter ( ) . map ( first) }
546
+ IntoIter { iter : self . map . into_iter ( ) }
557
547
}
558
548
}
559
549
@@ -721,7 +711,7 @@ impl<T> Iterator for IntoIter<T> {
721
711
type Item = T ;
722
712
723
713
fn next ( & mut self ) -> Option < T > {
724
- self . iter . next ( )
714
+ self . iter . next ( ) . map ( | ( k , _ ) | k )
725
715
}
726
716
fn size_hint ( & self ) -> ( usize , Option < usize > ) {
727
717
self . iter . size_hint ( )
@@ -730,7 +720,7 @@ impl<T> Iterator for IntoIter<T> {
730
720
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
731
721
impl < T > DoubleEndedIterator for IntoIter < T > {
732
722
fn next_back ( & mut self ) -> Option < T > {
733
- self . iter . next_back ( )
723
+ self . iter . next_back ( ) . map ( | ( k , _ ) | k )
734
724
}
735
725
}
736
726
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -746,12 +736,12 @@ impl<'a, T> Iterator for Range<'a, T> {
746
736
type Item = & ' a T ;
747
737
748
738
fn next ( & mut self ) -> Option < & ' a T > {
749
- self . iter . next ( )
739
+ self . iter . next ( ) . map ( | ( k , _ ) | k )
750
740
}
751
741
}
752
742
impl < ' a , T > DoubleEndedIterator for Range < ' a , T > {
753
743
fn next_back ( & mut self ) -> Option < & ' a T > {
754
- self . iter . next_back ( )
744
+ self . iter . next_back ( ) . map ( | ( k , _ ) | k )
755
745
}
756
746
}
757
747
0 commit comments