@@ -24,15 +24,17 @@ impl<I: Iterator, U: IntoIterator, F: FnMut(I::Item) -> U> FlatMap<I, U, F> {
24
24
}
25
25
26
26
#[ 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 > ,
29
30
{
30
31
fn clone ( & self ) -> Self { FlatMap { inner : self . inner . clone ( ) } }
31
32
}
32
33
33
34
#[ 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 > ,
36
38
{
37
39
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
38
40
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>
68
70
69
71
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
70
72
impl < 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 ,
74
77
{
75
78
#[ inline]
76
79
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>
105
108
#[ must_use = "iterators are lazy and do nothing unless consumed" ]
106
109
#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
107
110
pub struct Flatten < I : Iterator >
108
- where I :: Item : IntoIterator {
111
+ where
112
+ I :: Item : IntoIterator ,
113
+ {
109
114
inner : FlattenCompat < I , <I :: Item as IntoIterator >:: IntoIter > ,
110
115
}
111
- impl < I : Iterator > Flatten < I >
112
- where I :: Item : IntoIterator {
116
+
117
+ impl < I : Iterator < Item : IntoIterator > > Flatten < I > {
113
118
pub ( in super :: super ) fn new ( iter : I ) -> Flatten < I > {
114
119
Flatten { inner : FlattenCompat :: new ( iter) }
115
120
}
116
121
}
117
122
118
123
#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
119
124
impl < 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 ,
122
128
{
123
129
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
124
130
f. debug_struct ( "Flatten" ) . field ( "inner" , & self . inner ) . finish ( )
@@ -127,16 +133,18 @@ impl<I, U> fmt::Debug for Flatten<I>
127
133
128
134
#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
129
135
impl < 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 ,
132
139
{
133
140
fn clone ( & self ) -> Self { Flatten { inner : self . inner . clone ( ) } }
134
141
}
135
142
136
143
#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
137
144
impl < 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 ,
140
148
{
141
149
type Item = U :: Item ;
142
150
@@ -163,8 +171,9 @@ impl<I, U> Iterator for Flatten<I>
163
171
164
172
#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
165
173
impl < 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 ,
168
177
{
169
178
#[ inline]
170
179
fn next_back ( & mut self ) -> Option < U :: Item > { self . inner . next_back ( ) }
@@ -186,8 +195,10 @@ impl<I, U> DoubleEndedIterator for Flatten<I>
186
195
187
196
#[ stable( feature = "iterator_flatten" , since = "1.29.0" ) ]
188
197
impl < 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
+ { }
191
202
192
203
/// Real logic of both `Flatten` and `FlatMap` which simply delegate to
193
204
/// this type.
@@ -205,8 +216,9 @@ impl<I, U> FlattenCompat<I, U> {
205
216
}
206
217
207
218
impl < 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 ,
210
222
{
211
223
type Item = U :: Item ;
212
224
@@ -274,8 +286,9 @@ impl<I, U> Iterator for FlattenCompat<I, U>
274
286
}
275
287
276
288
impl < 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 ,
279
292
{
280
293
#[ inline]
281
294
fn next_back ( & mut self ) -> Option < U :: Item > {
0 commit comments