Fix vec::each* return values

This commit is contained in:
Jed Davis 2013-06-01 02:35:42 -07:00
parent 44af5064d0
commit c5d7a77a53
1 changed files with 19 additions and 2 deletions

View File

@ -1532,7 +1532,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
@ -1554,7 +1554,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
@ -3566,6 +3566,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]];