auto merge of #16664 : aturon/rust/stabilize-option-result, r=alexcrichton

Per API meeting

  https://github.com/rust-lang/meeting-minutes/blob/master/Meeting-API-review-2014-08-13.md

# Changes to `core::option`

Most of the module is marked as stable or unstable; most of the unstable items are awaiting resolution of conventions issues.

However, a few methods have been deprecated, either due to lack of use or redundancy:

* `take_unwrap`, `get_ref` and `get_mut_ref` (redundant, and we prefer for this functionality to go through an explicit .unwrap)
* `filtered` and `while`
* `mutate` and `mutate_or_set`
* `collect`: this functionality is being moved to a new `FromIterator` impl.

# Changes to `core::result`

Most of the module is marked as stable or unstable; most of the unstable items are awaiting resolution of conventions issues.

* `collect`: this functionality is being moved to a new `FromIterator` impl.
* `fold_` is deprecated due to lack of use
* Several methods found in `core::option` are added here, including `iter`, `as_slice`, and variants.

Due to deprecations, this is a:

[breaking-change]
This commit is contained in:
bors 2014-08-28 23:56:20 +00:00
commit 2e92c67dc0
47 changed files with 400 additions and 202 deletions

View file

@ -107,7 +107,7 @@ impl<T: Send> Packet<T> {
// Couldn't send the data, the port hung up first. Return the data
// back up the stack.
DISCONNECTED => {
Err(self.data.take_unwrap())
Err(self.data.take().unwrap())
}
// Not possible, these are one-use channels
@ -244,7 +244,7 @@ impl<T: Send> Packet<T> {
// There's data on the channel, so make sure we destroy it promptly.
// This is why not using an arc is a little difficult (need the box
// to stay valid while we take the data).
DATA => { self.data.take_unwrap(); }
DATA => { self.data.take().unwrap(); }
// We're the only ones that can block on this port
_ => unreachable!()

View file

@ -347,7 +347,7 @@ impl<T: Send> Packet<T> {
let waiter = match mem::replace(&mut state.blocker, NoneBlocked) {
NoneBlocked => None,
BlockedSender(task) => {
*state.canceled.take_unwrap() = true;
*state.canceled.take().unwrap() = true;
Some(task)
}
BlockedReceiver(..) => unreachable!(),
@ -434,7 +434,7 @@ impl<T> Buffer<T> {
let start = self.start;
self.size -= 1;
self.start = (self.start + 1) % self.buf.len();
self.buf.get_mut(start).take_unwrap()
self.buf.get_mut(start).take().unwrap()
}
fn size(&self) -> uint { self.size }
@ -481,7 +481,7 @@ impl Queue {
}
unsafe {
(*node).next = 0 as *mut Node;
Some((*node).task.take_unwrap())
Some((*node).task.take().unwrap())
}
}
}