@@ -24,15 +24,17 @@ impl<I: Iterator, U: IntoIterator, F: FnMut(I::Item) -> U> FlatMap<I, U, F> {
2424}
2525
2626#[ stable( feature = "rust1" , since = "1.0.0" ) ]
27- impl < I : Clone , U : Clone + IntoIterator , F : Clone > Clone for FlatMap < I , U , F >
28- where <U as IntoIterator >:: IntoIter : Clone
27+ impl < I : Clone , U , F : Clone > Clone for FlatMap < I , U , F >
28+ where
29+ U : Clone + IntoIterator < IntoIter : Clone > ,
2930{
3031 fn clone ( & self ) -> Self { FlatMap { inner : self . inner . clone ( ) } }
3132}
3233
3334#[ stable( feature = "core_impl_debug" , since = "1.9.0" ) ]
34- impl < I : fmt:: Debug , U : IntoIterator , F > fmt:: Debug for FlatMap < I , U , F >
35- where U :: IntoIter : fmt:: Debug
35+ impl < I : fmt:: Debug , U , F > fmt:: Debug for FlatMap < I , U , F >
36+ where
37+ U : IntoIterator < IntoIter : fmt:: Debug > ,
3638{
3739 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
3840 f. debug_struct ( "FlatMap" ) . field ( "inner" , & self . inner ) . finish ( )
@@ -68,9 +70,10 @@ impl<I: Iterator, U: IntoIterator, F> Iterator for FlatMap<I, U, F>
6870
6971#[ stable( feature = "rust1" , since = "1.0.0" ) ]
7072impl < I : DoubleEndedIterator , U , F > DoubleEndedIterator for FlatMap < I , U , F >
71- where F : FnMut ( I :: Item ) -> U ,
72- U : IntoIterator ,
73- U :: IntoIter : DoubleEndedIterator
73+ where
74+ F : FnMut ( I :: Item ) -> U ,
75+ U : IntoIterator ,
76+ U :: IntoIter : DoubleEndedIterator ,
7477{
7578 #[ inline]
7679 fn next_back ( & mut self ) -> Option < U :: Item > { self . inner . next_back ( ) }
@@ -105,20 +108,23 @@ impl<I, U, F> FusedIterator for FlatMap<I, U, F>
105108#[ must_use = "iterators are lazy and do nothing unless consumed" ]
106109#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
107110pub struct Flatten < I : Iterator >
108- where I :: Item : IntoIterator {
111+ where
112+ I :: Item : IntoIterator ,
113+ {
109114 inner : FlattenCompat < I , <I :: Item as IntoIterator >:: IntoIter > ,
110115}
111- impl < I : Iterator > Flatten < I >
112- where I :: Item : IntoIterator {
116+
117+ impl < I : Iterator < Item : IntoIterator > > Flatten < I > {
113118 pub ( in super :: super ) fn new ( iter : I ) -> Flatten < I > {
114119 Flatten { inner : FlattenCompat :: new ( iter) }
115120 }
116121}
117122
118123#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
119124impl < I , U > fmt:: Debug for Flatten < I >
120- where I : Iterator + fmt:: Debug , U : Iterator + fmt:: Debug ,
121- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item > ,
125+ where
126+ I : fmt:: Debug + Iterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
127+ U : fmt:: Debug + Iterator ,
122128{
123129 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
124130 f. debug_struct ( "Flatten" ) . field ( "inner" , & self . inner ) . finish ( )
@@ -127,16 +133,18 @@ impl<I, U> fmt::Debug for Flatten<I>
127133
128134#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
129135impl < I , U > Clone for Flatten < I >
130- where I : Iterator + Clone , U : Iterator + Clone ,
131- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item > ,
136+ where
137+ I : Clone + Iterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
138+ U : Clone + Iterator ,
132139{
133140 fn clone ( & self ) -> Self { Flatten { inner : self . inner . clone ( ) } }
134141}
135142
136143#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
137144impl < I , U > Iterator for Flatten < I >
138- where I : Iterator , U : Iterator ,
139- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item >
145+ where
146+ I : Iterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
147+ U : Iterator ,
140148{
141149 type Item = U :: Item ;
142150
@@ -163,8 +171,9 @@ impl<I, U> Iterator for Flatten<I>
163171
164172#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
165173impl < I , U > DoubleEndedIterator for Flatten < I >
166- where I : DoubleEndedIterator , U : DoubleEndedIterator ,
167- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item >
174+ where
175+ I : DoubleEndedIterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
176+ U : DoubleEndedIterator ,
168177{
169178 #[ inline]
170179 fn next_back ( & mut self ) -> Option < U :: Item > { self . inner . next_back ( ) }
@@ -186,8 +195,10 @@ impl<I, U> DoubleEndedIterator for Flatten<I>
186195
187196#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
188197impl < I , U > FusedIterator for Flatten < I >
189- where I : FusedIterator , U : Iterator ,
190- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item > { }
198+ where
199+ I : FusedIterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
200+ U : Iterator ,
201+ { }
191202
192203/// Real logic of both `Flatten` and `FlatMap` which simply delegate to
193204/// this type.
@@ -205,8 +216,9 @@ impl<I, U> FlattenCompat<I, U> {
205216}
206217
207218impl < I , U > Iterator for FlattenCompat < I , U >
208- where I : Iterator , U : Iterator ,
209- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item >
219+ where
220+ I : Iterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
221+ U : Iterator ,
210222{
211223 type Item = U :: Item ;
212224
@@ -274,8 +286,9 @@ impl<I, U> Iterator for FlattenCompat<I, U>
274286}
275287
276288impl < I , U > DoubleEndedIterator for FlattenCompat < I , U >
277- where I : DoubleEndedIterator , U : DoubleEndedIterator ,
278- I :: Item : IntoIterator < IntoIter = U , Item = U :: Item >
289+ where
290+ I : DoubleEndedIterator < Item : IntoIterator < IntoIter = U , Item = U :: Item > > ,
291+ U : DoubleEndedIterator ,
279292{
280293 #[ inline]
281294 fn next_back ( & mut self ) -> Option < U :: Item > {
0 commit comments