diff options
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/cell.rs | 2 | ||||
| -rw-r--r-- | src/libcore/iter.rs | 7 | ||||
| -rw-r--r-- | src/libcore/option.rs | 4 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/libcore/cell.rs b/src/libcore/cell.rs index 2a7b1630edf..c24db837671 100644 --- a/src/libcore/cell.rs +++ b/src/libcore/cell.rs @@ -99,7 +99,7 @@ //! // Take a reference to the inside of cache cell //! let mut cache = self.span_tree_cache.borrow_mut(); //! if cache.is_some() { -//! return cache.get_ref().clone(); +//! return cache.as_ref().unwrap().clone(); //! } //! //! let span_tree = self.calc_span_tree(); diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index b2bd8d46fb5..580d45ee8a6 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -2191,7 +2191,12 @@ pub fn iterate<'a, T: Clone>(f: |T|: 'a -> T, seed: T) -> Iterate<'a, T> { if *first { *first = false; } else { - val.mutate(|x| (*f)(x)); + match val.take() { + Some(x) => { + *val = Some((*f)(x)) + } + None => {} + } } val.clone() }) diff --git a/src/libcore/option.rs b/src/libcore/option.rs index dbcd943dae6..537d78a67fe 100644 --- a/src/libcore/option.rs +++ b/src/libcore/option.rs @@ -341,7 +341,7 @@ impl<T> Option<T> { #[deprecated = "removed due to lack of use"] pub fn mutate(&mut self, f: |T| -> T) -> bool { if self.is_some() { - *self = Some(f(self.take_unwrap())); + *self = Some(f(self.take().unwrap())); true } else { false } } @@ -353,7 +353,7 @@ impl<T> Option<T> { #[deprecated = "removed due to lack of use"] pub fn mutate_or_set(&mut self, def: T, f: |T| -> T) -> bool { if self.is_some() { - *self = Some(f(self.take_unwrap())); + *self = Some(f(self.take().unwrap())); true } else { *self = Some(def); |
