diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs
index 3d17b10ba3a85..97dcb2475a3cf 100644
--- a/src/libcore/iter.rs
+++ b/src/libcore/iter.rs
@@ -1513,7 +1513,7 @@ impl Iterator for Chain where
fn next(&mut self) -> Option {
match self.state {
ChainState::Both => match self.a.next() {
- elt @ Some(..) => return elt,
+ elt @ Some(..) => elt,
None => {
self.state = ChainState::Back;
self.b.next()
@@ -1590,7 +1590,7 @@ impl DoubleEndedIterator for Chain where
fn next_back(&mut self) -> Option {
match self.state {
ChainState::Both => match self.b.next_back() {
- elt @ Some(..) => return elt,
+ elt @ Some(..) => elt,
None => {
self.state = ChainState::Front;
self.a.next_back()
@@ -1683,7 +1683,7 @@ impl Iterator for Map where F: FnMut(I::Item) -> B {
#[inline]
fn next(&mut self) -> Option {
- self.iter.next().map(|a| (self.f)(a))
+ self.iter.next().map(&mut self.f)
}
#[inline]
@@ -1698,7 +1698,7 @@ impl DoubleEndedIterator for Map where
{
#[inline]
fn next_back(&mut self) -> Option {
- self.iter.next_back().map(|a| (self.f)(a))
+ self.iter.next_back().map(&mut self.f)
}
}
@@ -2210,7 +2210,7 @@ impl Iterator for FlatMap
return Some(x)
}
}
- match self.iter.next().map(|x| (self.f)(x)) {
+ match self.iter.next().map(&mut self.f) {
None => return self.backiter.as_mut().and_then(|it| it.next()),
next => self.frontiter = next.map(IntoIterator::into_iter),
}
@@ -2243,7 +2243,7 @@ impl DoubleEndedIterator for FlatMap wher
return Some(y)
}
}
- match self.iter.next_back().map(|x| (self.f)(x)) {
+ match self.iter.next_back().map(&mut self.f) {
None => return self.frontiter.as_mut().and_then(|it| it.next_back()),
next => self.backiter = next.map(IntoIterator::into_iter),
}