Skip to content

Commit 37df5e0

Browse files
committedDec 5, 2017
adjust libcore
1 parent 6b9fbb2 commit 37df5e0

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed
 

‎src/libcore/cell.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,9 +1084,11 @@ impl<'b, T: ?Sized> RefMut<'b, T> {
10841084
pub fn map<U: ?Sized, F>(orig: RefMut<'b, T>, f: F) -> RefMut<'b, U>
10851085
where F: FnOnce(&mut T) -> &mut U
10861086
{
1087+
// FIXME: fix borrow-check
1088+
let RefMut { value, borrow } = orig;
10871089
RefMut {
1088-
value: f(orig.value),
1089-
borrow: orig.borrow,
1090+
value: f(value),
1091+
borrow: borrow,
10901092
}
10911093
}
10921094
}

‎src/libcore/iter/mod.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,12 +1776,18 @@ impl<I: Iterator> Iterator for Peekable<I> {
17761776

17771777
#[inline]
17781778
fn nth(&mut self, n: usize) -> Option<I::Item> {
1779-
match self.peeked.take() {
1780-
// the .take() below is just to avoid "move into pattern guard"
1781-
Some(ref mut v) if n == 0 => v.take(),
1782-
Some(None) => None,
1783-
Some(Some(_)) => self.iter.nth(n - 1),
1784-
None => self.iter.nth(n),
1779+
// FIXME: merge these when borrow-checking gets better.
1780+
if n == 0 {
1781+
match self.peeked.take() {
1782+
Some(v) => v,
1783+
None => self.iter.nth(n),
1784+
}
1785+
} else {
1786+
match self.peeked.take() {
1787+
Some(None) => None,
1788+
Some(Some(_)) => self.iter.nth(n - 1),
1789+
None => self.iter.nth(n),
1790+
}
17851791
}
17861792
}
17871793

0 commit comments

Comments
 (0)
Please sign in to comment.