auto merge of #6886 : jld/rust/vec-each-ret-fix, r=sanxiyn

This commit is contained in:
bors 2013-06-03 18:55:29 -07:00
commit 133d451715

View File

@ -1564,7 +1564,7 @@ pub fn each<'r,T>(v: &'r [T], f: &fn(&'r T) -> bool) -> bool {
}
broke = n > 0;
}
return true;
return !broke;
}
/// Like `each()`, but for the case where you have
@ -1586,7 +1586,7 @@ pub fn each_mut<'r,T>(v: &'r mut [T], f: &fn(elem: &'r mut T) -> bool) -> bool {
}
broke = n > 0;
}
return broke;
return !broke;
}
/// Like `each()`, but for the case where you have a vector that *may or may
@ -3598,6 +3598,23 @@ mod tests {
}
}
#[test]
fn test_each_ret_len0() {
let mut a0 : [int, .. 0] = [];
assert_eq!(each(a0, |_p| fail!()), true);
assert_eq!(each_mut(a0, |_p| fail!()), true);
}
#[test]
fn test_each_ret_len1() {
let mut a1 = [17];
assert_eq!(each(a1, |_p| true), true);
assert_eq!(each_mut(a1, |_p| true), true);
assert_eq!(each(a1, |_p| false), false);
assert_eq!(each_mut(a1, |_p| false), false);
}
#[test]
fn test_each_permutation() {
let mut results: ~[~[int]];