Skip to content

Commit 9207802

Browse files
committed
Remove vec::reversed, replaced by iterators.
1 parent de0d696 commit 9207802

File tree

4 files changed

+16
-38
lines changed

4 files changed

+16
-38
lines changed

src/libextra/num/bigint.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -520,10 +520,12 @@ impl ToStrRadix for BigUint {
520520

521521
fn fill_concat(v: &[BigDigit], radix: uint, l: uint) -> ~str {
522522
if v.is_empty() { return ~"0" }
523-
let s = vec::reversed(v).map(|n| {
524-
let s = uint::to_str_radix(*n as uint, radix);
525-
str::from_chars(vec::from_elem(l - s.len(), '0')) + s
526-
}).concat();
523+
let mut s = str::with_capacity(v.len() * l);
524+
for v.rev_iter().advance |n| {
525+
let ss = uint::to_str_radix(*n as uint, radix);
526+
s.push_str("0".repeat(l - ss.len()));
527+
s.push_str(ss);
528+
}
527529
s.trim_left_chars(&'0').to_owned()
528530
}
529531
}
@@ -1629,7 +1631,6 @@ mod bigint_tests {
16291631
use std::int;
16301632
use std::num::{IntConvertible, Zero, One, FromStrRadix};
16311633
use std::uint;
1632-
use std::vec;
16331634

16341635
#[test]
16351636
fn test_from_biguint() {
@@ -1646,9 +1647,11 @@ mod bigint_tests {
16461647

16471648
#[test]
16481649
fn test_cmp() {
1649-
let vs = [ &[2], &[1, 1], &[2, 1], &[1, 1, 1] ];
1650-
let mut nums = vec::reversed(vs)
1651-
.map(|s| BigInt::from_slice(Minus, *s));
1650+
let vs = [ &[2 as BigDigit], &[1, 1], &[2, 1], &[1, 1, 1] ];
1651+
let mut nums = ~[];
1652+
for vs.rev_iter().advance |s| {
1653+
nums.push(BigInt::from_slice(Minus, *s));
1654+
}
16521655
nums.push(Zero::zero());
16531656
nums.push_all_move(vs.map(|s| BigInt::from_slice(Plus, *s)));
16541657

src/librustc/middle/resolve.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ use syntax::opt_vec::OptVec;
4141

4242
use std::str;
4343
use std::uint;
44-
use std::vec;
4544
use std::hashmap::{HashMap, HashSet};
4645
use std::util;
4746

@@ -5360,7 +5359,7 @@ impl Resolver {
53605359
if idents.len() == 0 {
53615360
return ~"???";
53625361
}
5363-
return self.idents_to_str(vec::reversed(idents));
5362+
return self.idents_to_str(idents.consume_rev_iter().collect::<~[ast::ident]>());
53645363
}
53655364

53665365
pub fn dump_module(@mut self, module_: @mut Module) {

src/libstd/vec.rs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -436,16 +436,6 @@ pub fn zip<T, U>(mut v: ~[T], mut u: ~[U]) -> ~[(T, U)] {
436436
w
437437
}
438438

439-
/// Returns a vector with the order of elements reversed
440-
pub fn reversed<T:Copy>(v: &[T]) -> ~[T] {
441-
let mut rs: ~[T] = ~[];
442-
let mut i = v.len();
443-
if i == 0 { return (rs); } else { i -= 1; }
444-
while i != 0 { rs.push(copy v[i]); i -= 1; }
445-
rs.push(copy v[0]);
446-
rs
447-
}
448-
449439
/**
450440
* Iterate over all permutations of vector `v`.
451441
*
@@ -2628,31 +2618,17 @@ mod tests {
26282618
}
26292619

26302620
#[test]
2631-
fn reverse_and_reversed() {
2621+
fn test_reverse() {
26322622
let mut v: ~[int] = ~[10, 20];
26332623
assert_eq!(v[0], 10);
26342624
assert_eq!(v[1], 20);
26352625
v.reverse();
26362626
assert_eq!(v[0], 20);
26372627
assert_eq!(v[1], 10);
2638-
let v2 = reversed::<int>([10, 20]);
2639-
assert_eq!(v2[0], 20);
2640-
assert_eq!(v2[1], 10);
2641-
v[0] = 30;
2642-
assert_eq!(v2[0], 20);
2643-
// Make sure they work with 0-length vectors too.
2644-
2645-
let v4 = reversed::<int>([]);
2646-
assert_eq!(v4, ~[]);
2628+
26472629
let mut v3: ~[int] = ~[];
26482630
v3.reverse();
2649-
}
2650-
2651-
#[test]
2652-
fn reversed_mut() {
2653-
let v2 = reversed::<int>([10, 20]);
2654-
assert_eq!(v2[0], 20);
2655-
assert_eq!(v2[1], 10);
2631+
assert!(v3.is_empty());
26562632
}
26572633

26582634
#[test]

src/test/run-pass/import-glob-crate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ use std::vec::*;
1717
pub fn main() {
1818
let mut v = from_elem(0u, 0);
1919
v = append(v, ~[4, 2]);
20-
assert_eq!(reversed(v), ~[2, 4]);
20+
assert_eq!(from_fn(2, |i| 2*(i+1)), ~[2, 4]);
2121
}

0 commit comments

Comments
 (0)