File tree 1 file changed +7
-4
lines changed
src/libcore/iter/adapters
1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change 1
1
use crate :: fmt;
2
2
use crate :: ops:: Try ;
3
3
4
- use super :: super :: { DoubleEndedIterator , FusedIterator , Iterator } ;
4
+ use super :: super :: { DoubleEndedIterator , Fuse , FusedIterator , Iterator } ;
5
5
use super :: Map ;
6
6
7
7
/// An iterator that maps each element to an iterator, and yields the elements
@@ -239,14 +239,17 @@ where
239
239
/// this type.
240
240
#[ derive( Clone , Debug ) ]
241
241
struct FlattenCompat < I , U > {
242
- iter : I ,
242
+ iter : Fuse < I > ,
243
243
frontiter : Option < U > ,
244
244
backiter : Option < U > ,
245
245
}
246
- impl < I , U > FlattenCompat < I , U > {
246
+ impl < I , U > FlattenCompat < I , U >
247
+ where
248
+ I : Iterator ,
249
+ {
247
250
/// Adapts an iterator by flattening it, for use in `flatten()` and `flat_map()`.
248
251
fn new ( iter : I ) -> FlattenCompat < I , U > {
249
- FlattenCompat { iter, frontiter : None , backiter : None }
252
+ FlattenCompat { iter : iter . fuse ( ) , frontiter : None , backiter : None }
250
253
}
251
254
}
252
255
You can’t perform that action at this time.
0 commit comments