Skip to content

Commit

Permalink
[std::vec] Rename .head_opt() to .head(), drop the old .head() behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonSapin committed Jan 21, 2014
1 parent d25334d commit add8f96
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 29 deletions.
2 changes: 1 addition & 1 deletion src/libstd/str.rs
Expand Up @@ -666,7 +666,7 @@ impl<'a> Iterator<char> for Normalizations<'a> {
fn next(&mut self) -> Option<char> {
use unicode::decompose::canonical_combining_class;

match self.buffer.head_opt() {
match self.buffer.head() {
Some(&(c, 0)) => {
self.sorted = false;
self.buffer.shift();
Expand Down
33 changes: 5 additions & 28 deletions src/libstd/vec.rs
Expand Up @@ -942,10 +942,8 @@ pub trait ImmutableVector<'a, T> {
/// Returns the element of a vector at the given index, or `None` if the
/// index is out of bounds
fn get(&self, index: uint) -> Option<&'a T>;
/// Returns the first element of a vector, failing if the vector is empty.
fn head(&self) -> &'a T;
/// Returns the first element of a vector, or `None` if it is empty
fn head_opt(&self) -> Option<&'a T>;
fn head(&self) -> Option<&'a T>;
/// Returns all but the first element of a vector
fn tail(&self) -> &'a [T];
/// Returns all but the first `n' elements of a vector
Expand Down Expand Up @@ -1123,13 +1121,7 @@ impl<'a,T> ImmutableVector<'a, T> for &'a [T] {
}

#[inline]
fn head(&self) -> &'a T {
if self.len() == 0 { fail!("head: empty vector") }
&self[0]
}

#[inline]
fn head_opt(&self) -> Option<&'a T> {
fn head(&self) -> Option<&'a T> {
if self.len() == 0 { None } else { Some(&self[0]) }
}

Expand Down Expand Up @@ -3054,27 +3046,12 @@ mod tests {

#[test]
fn test_head() {
let mut a = ~[11];
assert_eq!(a.head(), &11);
a = ~[11, 12];
assert_eq!(a.head(), &11);
}

#[test]
#[should_fail]
fn test_head_empty() {
let a: ~[int] = ~[];
a.head();
}

#[test]
fn test_head_opt() {
let mut a = ~[];
assert_eq!(a.head_opt(), None);
assert_eq!(a.head(), None);
a = ~[11];
assert_eq!(a.head_opt().unwrap(), &11);
assert_eq!(a.head().unwrap(), &11);
a = ~[11, 12];
assert_eq!(a.head_opt().unwrap(), &11);
assert_eq!(a.head().unwrap(), &11);
}

#[test]
Expand Down

0 comments on commit add8f96

Please sign in to comment.