1414use core:: cmp:: Ordering :: { self , Less , Greater , Equal } ;
1515use core:: fmt:: Debug ;
1616use core:: fmt;
17- use core:: iter:: { Peekable , Map , FromIterator } ;
17+ use core:: iter:: { Peekable , FromIterator } ;
1818use core:: ops:: { BitOr , BitAnd , BitXor , Sub } ;
1919
2020use borrow:: Borrow ;
@@ -52,12 +52,12 @@ pub struct Iter<'a, T: 'a> {
5252/// An owning iterator over a BTreeSet's items.
5353#[ stable( feature = "rust1" , since = "1.0.0" ) ]
5454pub struct IntoIter < T > {
55- iter : Map < :: btree_map:: IntoIter < T , ( ) > , fn ( ( T , ( ) ) ) -> T > ,
55+ iter : :: btree_map:: IntoIter < T , ( ) > ,
5656}
5757
5858/// An iterator over a sub-range of BTreeSet's items.
5959pub 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 , ( ) > ,
6161}
6262
6363/// A lazy iterator producing elements in the set difference (in-order).
@@ -160,12 +160,7 @@ impl<T: Ord> BTreeSet<T> {
160160 -> Range < ' a , T >
161161 where T : Borrow < Min > + Borrow < Max >
162162 {
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) }
169164 }
170165}
171166
@@ -548,12 +543,7 @@ impl<T> IntoIterator for BTreeSet<T> {
548543 /// assert_eq!(v, [1, 2, 3, 4]);
549544 /// ```
550545 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 ( ) }
557547 }
558548}
559549
@@ -721,7 +711,7 @@ impl<T> Iterator for IntoIter<T> {
721711 type Item = T ;
722712
723713 fn next ( & mut self ) -> Option < T > {
724- self . iter . next ( )
714+ self . iter . next ( ) . map ( | ( k , _ ) | k )
725715 }
726716 fn size_hint ( & self ) -> ( usize , Option < usize > ) {
727717 self . iter . size_hint ( )
@@ -730,7 +720,7 @@ impl<T> Iterator for IntoIter<T> {
730720#[ stable( feature = "rust1" , since = "1.0.0" ) ]
731721impl < T > DoubleEndedIterator for IntoIter < T > {
732722 fn next_back ( & mut self ) -> Option < T > {
733- self . iter . next_back ( )
723+ self . iter . next_back ( ) . map ( | ( k , _ ) | k )
734724 }
735725}
736726#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -746,12 +736,12 @@ impl<'a, T> Iterator for Range<'a, T> {
746736 type Item = & ' a T ;
747737
748738 fn next ( & mut self ) -> Option < & ' a T > {
749- self . iter . next ( )
739+ self . iter . next ( ) . map ( | ( k , _ ) | k )
750740 }
751741}
752742impl < ' a , T > DoubleEndedIterator for Range < ' a , T > {
753743 fn next_back ( & mut self ) -> Option < & ' a T > {
754- self . iter . next_back ( )
744+ self . iter . next_back ( ) . map ( | ( k , _ ) | k )
755745 }
756746}
757747
0 commit comments