@@ -432,7 +432,7 @@ pub trait IteratorExt<A>: Iterator<A> {
432
432
/// ```
433
433
#[ inline]
434
434
#[ unstable = "waiting for unboxed closures" ]
435
- fn inspect < ' r > ( self , f: | & A | : ' r ) -> Inspect < ' r , A , Self > {
435
+ fn inspect < F > ( self , f : F ) -> Inspect < A , Self , F > where F : FnMut ( & A ) {
436
436
Inspect { iter : self , f : f}
437
437
}
438
438
@@ -777,7 +777,10 @@ pub trait ExactSizeIterator<A> : DoubleEndedIterator<A> {
777
777
#[ unstable = "trait is unstable" ]
778
778
impl < A , T : ExactSizeIterator < A > > ExactSizeIterator < ( uint , A ) > for Enumerate < T > { }
779
779
#[ unstable = "trait is unstable" ]
780
- impl < ' a , A , T : ExactSizeIterator < A > > ExactSizeIterator < A > for Inspect < ' a , A , T > { }
780
+ impl < A , I , F > ExactSizeIterator < A > for Inspect < A , I , F > where
781
+ I : ExactSizeIterator < A > ,
782
+ F : FnMut ( & A ) ,
783
+ { }
781
784
#[ unstable = "trait is unstable" ]
782
785
impl < A , T : ExactSizeIterator < A > > ExactSizeIterator < A > for Rev < T > { }
783
786
#[ unstable = "trait is unstable" ]
@@ -2012,12 +2015,12 @@ impl<T> Fuse<T> {
2012
2015
/// element before yielding it.
2013
2016
#[ must_use = "iterator adaptors are lazy and do nothing unless consumed" ]
2014
2017
#[ unstable = "waiting for unboxed closures" ]
2015
- pub struct Inspect < ' a , A , T > {
2016
- iter : T ,
2017
- f : | & A | : ' a
2018
+ pub struct Inspect < A , I , F > where I : Iterator < A > , F : FnMut ( & A ) {
2019
+ iter : I ,
2020
+ f : F ,
2018
2021
}
2019
2022
2020
- impl <' a , A , T > Inspect < ' a , A , T > {
2023
+ impl < A , I , F > Inspect < A , I , F > where I : Iterator < A > , F : FnMut ( & A ) {
2021
2024
#[ inline]
2022
2025
fn do_inspect ( & mut self , elt : Option < A > ) -> Option < A > {
2023
2026
match elt {
@@ -2030,7 +2033,7 @@ impl<'a, A, T> Inspect<'a, A, T> {
2030
2033
}
2031
2034
2032
2035
#[ unstable = "trait is unstable" ]
2033
- impl < ' a , A , T : Iterator < A > > Iterator < A > for Inspect < ' a , A , T > {
2036
+ impl < A , I , F > Iterator < A > for Inspect < A , I , F > where I : Iterator < A > , F : FnMut ( & A ) {
2034
2037
#[ inline]
2035
2038
fn next ( & mut self ) -> Option < A > {
2036
2039
let next = self . iter . next ( ) ;
@@ -2044,8 +2047,10 @@ impl<'a, A, T: Iterator<A>> Iterator<A> for Inspect<'a, A, T> {
2044
2047
}
2045
2048
2046
2049
#[ unstable = "trait is unstable" ]
2047
- impl < ' a , A , T : DoubleEndedIterator < A > > DoubleEndedIterator < A >
2048
- for Inspect < ' a , A , T > {
2050
+ impl < A , I , F > DoubleEndedIterator < A > for Inspect < A , I , F > where
2051
+ I : DoubleEndedIterator < A > ,
2052
+ F : FnMut ( & A ) ,
2053
+ {
2049
2054
#[ inline]
2050
2055
fn next_back ( & mut self ) -> Option < A > {
2051
2056
let next = self . iter . next_back ( ) ;
@@ -2054,8 +2059,10 @@ for Inspect<'a, A, T> {
2054
2059
}
2055
2060
2056
2061
#[ experimental = "trait is experimental" ]
2057
- impl < ' a , A , T : RandomAccessIterator < A > > RandomAccessIterator < A >
2058
- for Inspect < ' a , A , T > {
2062
+ impl < A , I , F > RandomAccessIterator < A > for Inspect < A , I , F > where
2063
+ I : RandomAccessIterator < A > ,
2064
+ F : FnMut ( & A ) ,
2065
+ {
2059
2066
#[ inline]
2060
2067
fn indexable ( & self ) -> uint {
2061
2068
self . iter . indexable ( )
0 commit comments