diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-03-13 07:45:45 -0700 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-03-19 20:24:04 -0700 |
| commit | fe74a1c9a2ebd40028a4f389dc10c82f37fb0fe2 (patch) | |
| tree | e8a9db11be0bd9a97c497a7ab73a292a9308936a | |
| parent | 4cb9ca92962dbbe8ffd813c016e9d6f809dd285b (diff) | |
| download | rust-fe74a1c9a2ebd40028a4f389dc10c82f37fb0fe2.tar.gz rust-fe74a1c9a2ebd40028a4f389dc10c82f37fb0fe2.zip | |
core: rename vec::rev_each{,i} to vec::each{,i}_reverse
I'm making this change because the _reverse suffix is more commonly used in libcore/libstd.
| -rw-r--r-- | src/libcore/vec.rs | 43 | ||||
| -rw-r--r-- | src/librustc/middle/trans/base.rs | 2 | ||||
| -rw-r--r-- | src/libstd/bigint.rs | 6 |
3 files changed, 37 insertions, 14 deletions
diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index dc220eaed1b..e41aefc94e5 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -1005,7 +1005,7 @@ pub pure fn foldl<T, U>(z: T, v: &[U], p: &fn(t: T, u: &U) -> T) -> T { */ pub pure fn foldr<T, U: Copy>(v: &[T], z: U, p: &fn(t: &T, u: U) -> U) -> U { let mut accum = z; - for rev_each(v) |elt| { + for v.each_reverse |elt| { accum = p(elt, accum); } accum @@ -1411,8 +1411,8 @@ pub pure fn eachi<T>(v: &'r [T], f: &fn(uint, v: &'r T) -> bool) { * Return true to continue, false to break. */ #[inline(always)] -pub pure fn rev_each<T>(v: &'r [T], blk: &fn(v: &'r T) -> bool) { - rev_eachi(v, |_i, v| blk(v)) +pub pure fn each_reverse<T>(v: &'r [T], blk: &fn(v: &'r T) -> bool) { + eachi_reverse(v, |_i, v| blk(v)) } /** @@ -1421,7 +1421,7 @@ pub pure fn rev_each<T>(v: &'r [T], blk: &fn(v: &'r T) -> bool) { * Return true to continue, false to break. */ #[inline(always)] -pub pure fn rev_eachi<T>(v: &'r [T], blk: &fn(i: uint, v: &'r T) -> bool) { +pub pure fn eachi_reverse<T>(v: &'r [T], blk: &fn(i: uint, v: &'r T) -> bool) { let mut i = v.len(); while i > 0 { i -= 1; @@ -1736,6 +1736,8 @@ pub trait ImmutableVector<T> { pure fn initn(&self, n: uint) -> &'self [T]; pure fn last(&self) -> &'self T; pure fn last_opt(&self) -> Option<&'self T>; + pure fn each_reverse(&self, blk: &fn(&T) -> bool); + pure fn eachi_reverse(&self, blk: &fn(uint, &T) -> bool); pure fn foldr<U: Copy>(&self, z: U, p: &fn(t: &T, u: U) -> U) -> U; pure fn map<U>(&self, f: &fn(t: &T) -> U) -> ~[U]; pure fn mapi<U>(&self, f: &fn(uint, t: &T) -> U) -> ~[U]; @@ -1785,6 +1787,18 @@ impl<T> ImmutableVector<T> for &'self [T] { #[inline] pure fn last_opt(&self) -> Option<&'self T> { last_opt(*self) } + /// Iterates over a vector's elements in reverse. + #[inline] + pure fn each_reverse(&self, blk: &fn(&T) -> bool) { + each_reverse(*self, blk) + } + + /// Iterates over a vector's elements and indices in reverse. + #[inline] + pure fn eachi_reverse(&self, blk: &fn(uint, &T) -> bool) { + eachi_reverse(*self, blk) + } + /// Reduce a vector from right to left #[inline] pure fn foldr<U:Copy>(&self, z: U, p: &fn(t: &T, u: U) -> U) -> U { @@ -3131,16 +3145,17 @@ mod tests { } #[test] - fn test_reach_empty() { - for rev_each::<int>(~[]) |_v| { + fn test_each_reverse_empty() { + let v: ~[int] = ~[]; + for v.each_reverse |_v| { fail!(); // should never execute } } #[test] - fn test_reach_nonempty() { + fn test_each_reverse_nonempty() { let mut i = 0; - for rev_each(~[1, 2, 3]) |v| { + for each_reverse(~[1, 2, 3]) |v| { if i == 0 { fail_unless!(*v == 3); } i += *v } @@ -3148,9 +3163,9 @@ mod tests { } #[test] - fn test_reachi() { + fn test_eachi_reverse() { let mut i = 0; - for rev_eachi(~[0, 1, 2]) |j, v| { + for eachi_reverse(~[0, 1, 2]) |j, v| { if i == 0 { fail_unless!(*v == 2); } fail_unless!(j == *v as uint); i += *v; @@ -3159,6 +3174,14 @@ mod tests { } #[test] + fn test_eachi_reverse_empty() { + let v: ~[int] = ~[]; + for v.eachi_reverse |_i, _v| { + fail!(); // should never execute + } + } + + #[test] fn test_each_permutation() { let mut results: ~[~[int]]; diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index 4836ce062c9..7b2ea956ebd 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -1264,7 +1264,7 @@ pub fn trans_block_cleanups_(bcx: block, bcx.ccx().sess.opts.debugging_opts & session::no_landing_pads != 0; if bcx.unreachable && !no_lpads { return bcx; } let mut bcx = bcx; - for vec::rev_each(cleanups) |cu| { + for cleanups.each_reverse |cu| { match *cu { clean(cfn, cleanup_type) | clean_temp(_, cfn, cleanup_type) => { // Some types don't need to be cleaned up during diff --git a/src/libstd/bigint.rs b/src/libstd/bigint.rs index e128859bb7d..cdc65de4987 100644 --- a/src/libstd/bigint.rs +++ b/src/libstd/bigint.rs @@ -324,7 +324,7 @@ pub impl BigUint { if s_len < o_len { return -1; } if s_len > o_len { return 1; } - for vec::rev_eachi(self.data) |i, elm| { + for self.data.eachi_reverse |i, elm| { match (*elm, other.data[i]) { (l, r) if l < r => return -1, (l, r) if l > r => return 1, @@ -387,7 +387,7 @@ pub impl BigUint { let bn = *b.data.last(); let mut d = ~[]; let mut carry = 0; - for vec::rev_each(an) |elt| { + for an.each_reverse |elt| { let ai = BigDigit::to_uint(carry, *elt); let di = ai / (bn as uint); fail_unless!(di < BigDigit::base); @@ -499,7 +499,7 @@ pub impl BigUint { let mut borrow = 0; let mut shifted = ~[]; - for vec::rev_each(self.data) |elem| { + for self.data.each_reverse |elem| { shifted = ~[(*elem >> n_bits) | borrow] + shifted; borrow = *elem << (uint::bits - n_bits); } |
