adjust libcore
This commit is contained in:
parent
6b9fbb2ab8
commit
37df5e0b91
2 changed files with 16 additions and 8 deletions
|
@ -1084,9 +1084,11 @@ impl<'b, T: ?Sized> RefMut<'b, T> {
|
||||||
pub fn map<U: ?Sized, F>(orig: RefMut<'b, T>, f: F) -> RefMut<'b, U>
|
pub fn map<U: ?Sized, F>(orig: RefMut<'b, T>, f: F) -> RefMut<'b, U>
|
||||||
where F: FnOnce(&mut T) -> &mut U
|
where F: FnOnce(&mut T) -> &mut U
|
||||||
{
|
{
|
||||||
|
// FIXME: fix borrow-check
|
||||||
|
let RefMut { value, borrow } = orig;
|
||||||
RefMut {
|
RefMut {
|
||||||
value: f(orig.value),
|
value: f(value),
|
||||||
borrow: orig.borrow,
|
borrow: borrow,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1776,14 +1776,20 @@ impl<I: Iterator> Iterator for Peekable<I> {
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn nth(&mut self, n: usize) -> Option<I::Item> {
|
fn nth(&mut self, n: usize) -> Option<I::Item> {
|
||||||
|
// FIXME: merge these when borrow-checking gets better.
|
||||||
|
if n == 0 {
|
||||||
|
match self.peeked.take() {
|
||||||
|
Some(v) => v,
|
||||||
|
None => self.iter.nth(n),
|
||||||
|
}
|
||||||
|
} else {
|
||||||
match self.peeked.take() {
|
match self.peeked.take() {
|
||||||
// the .take() below is just to avoid "move into pattern guard"
|
|
||||||
Some(ref mut v) if n == 0 => v.take(),
|
|
||||||
Some(None) => None,
|
Some(None) => None,
|
||||||
Some(Some(_)) => self.iter.nth(n - 1),
|
Some(Some(_)) => self.iter.nth(n - 1),
|
||||||
None => self.iter.nth(n),
|
None => self.iter.nth(n),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn last(mut self) -> Option<I::Item> {
|
fn last(mut self) -> Option<I::Item> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue