Skip to content

Commit 0c6fc46

Browse files
committed
auto merge of #7566 : huonw/rust/vec-kill, r=cmr
The last remaining internal iterator in `vec` is `each_permutation`.
2 parents 1cee9d4 + cdea73c commit 0c6fc46

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+817
-1197
lines changed

doc/tutorial-container.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ impl Iterator<int> for ZeroStream {
108108
## Container iterators
109109
110110
Containers implement iteration over the contained elements by returning an
111-
iterator object. For example, vectors have four iterators available:
111+
iterator object. For example, vector slices have four iterators available:
112112
113113
* `vector.iter()`, for immutable references to the elements
114114
* `vector.mut_iter()`, for mutable references to the elements

src/compiletest/runtest.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -601,9 +601,8 @@ fn make_run_args(config: &config, _props: &TestProps, testfile: &Path) ->
601601
ProcArgs {
602602
// If we've got another tool to run under (valgrind),
603603
// then split apart its command
604-
let toolargs = split_maybe_args(&config.runtool);
605-
606-
let mut args = toolargs + [make_exe_name(config, testfile).to_str()];
604+
let mut args = split_maybe_args(&config.runtool);
605+
args.push(make_exe_name(config, testfile).to_str());
607606
let prog = args.shift();
608607
return ProcArgs {prog: prog, args: args};
609608
}

src/libextra/crypto/sha1.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,6 @@ impl Digest for Sha1 {
240240

241241
#[cfg(test)]
242242
mod tests {
243-
use std::vec;
244243

245244
use digest::{Digest, DigestUtil};
246245
use sha1::Sha1;
@@ -337,7 +336,7 @@ mod tests {
337336
for tests.iter().advance |t| {
338337
(*sh).input_str(t.input);
339338
sh.result(out);
340-
assert!(vec::eq(t.output, out));
339+
assert!(t.output.as_slice() == out);
341340

342341
let out_str = (*sh).result_str();
343342
assert_eq!(out_str.len(), 40);
@@ -357,7 +356,7 @@ mod tests {
357356
left = left - take;
358357
}
359358
sh.result(out);
360-
assert!(vec::eq(t.output, out));
359+
assert!(t.output.as_slice() == out);
361360

362361
let out_str = (*sh).result_str();
363362
assert_eq!(out_str.len(), 40);

src/libextra/flate.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ static LZ_NORM : c_int = 0x80; // LZ with 128 probes, "normal"
4545
static LZ_BEST : c_int = 0xfff; // LZ with 4095 probes, "best"
4646

4747
pub fn deflate_bytes(bytes: &[u8]) -> ~[u8] {
48-
do vec::as_imm_buf(bytes) |b, len| {
48+
do bytes.as_imm_buf |b, len| {
4949
unsafe {
5050
let mut outsz : size_t = 0;
5151
let res =
@@ -63,7 +63,7 @@ pub fn deflate_bytes(bytes: &[u8]) -> ~[u8] {
6363
}
6464

6565
pub fn inflate_bytes(bytes: &[u8]) -> ~[u8] {
66-
do vec::as_imm_buf(bytes) |b, len| {
66+
do bytes.as_imm_buf |b, len| {
6767
unsafe {
6868
let mut outsz : size_t = 0;
6969
let res =

src/libextra/flatpipes.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ use std::io;
5555
use std::comm::GenericChan;
5656
use std::comm::GenericPort;
5757
use std::sys::size_of;
58-
use std::vec;
5958

6059
/**
6160
A FlatPort, consisting of a `BytePort` that receives byte vectors,
@@ -274,7 +273,7 @@ impl<T,U:Unflattener<T>,P:BytePort> GenericPort<T> for FlatPort<T, U, P> {
274273
}
275274
};
276275

277-
if vec::eq(command, CONTINUE) {
276+
if CONTINUE.as_slice() == command {
278277
let msg_len = match self.byte_port.try_recv(size_of::<u64>()) {
279278
Some(bytes) => {
280279
io::u64_from_be_bytes(bytes, 0, size_of::<u64>())
@@ -931,7 +930,7 @@ mod test {
931930
fn test_try_recv_none3<P:BytePort>(loader: PortLoader<P>) {
932931
static CONTINUE: [u8, ..4] = [0xAA, 0xBB, 0xCC, 0xDD];
933932
// The control word is followed by garbage
934-
let bytes = CONTINUE.to_owned() + [0];
933+
let bytes = CONTINUE.to_owned() + &[0u8];
935934
let port = loader(bytes);
936935
let res: Option<int> = port.try_recv();
937936
assert!(res.is_none());
@@ -955,7 +954,7 @@ mod test {
955954
1, sys::size_of::<u64>()) |len_bytes| {
956955
len_bytes.to_owned()
957956
};
958-
let bytes = CONTINUE.to_owned() + len_bytes + [0, 0, 0, 0];
957+
let bytes = CONTINUE.to_owned() + len_bytes + &[0u8, 0, 0, 0];
959958

960959
let port = loader(bytes);
961960

src/libextra/json.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ use std::io::{WriterUtil, ReaderUtil};
2424
use std::io;
2525
use std::str;
2626
use std::to_str;
27-
use std::vec;
2827

2928
use serialize::Encodable;
3029
use serialize;
@@ -941,7 +940,7 @@ impl serialize::Decoder for Decoder {
941940
let name = match self.stack.pop() {
942941
String(s) => s,
943942
List(list) => {
944-
do vec::consume_reverse(list) |_i, v| {
943+
for list.consume_rev_iter().advance |v| {
945944
self.stack.push(v);
946945
}
947946
match self.stack.pop() {
@@ -1059,7 +1058,7 @@ impl serialize::Decoder for Decoder {
10591058
let len = match self.stack.pop() {
10601059
List(list) => {
10611060
let len = list.len();
1062-
do vec::consume_reverse(list) |_i, v| {
1061+
for list.consume_rev_iter().advance |v| {
10631062
self.stack.push(v);
10641063
}
10651064
len

src/libextra/num/bigint.rs

+20-17
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ impl Add<BigUint, BigUint> for BigUint {
207207
let new_len = uint::max(self.data.len(), other.data.len());
208208

209209
let mut carry = 0;
210-
let sum = do vec::from_fn(new_len) |i| {
210+
let mut sum = do vec::from_fn(new_len) |i| {
211211
let ai = if i < self.data.len() { self.data[i] } else { 0 };
212212
let bi = if i < other.data.len() { other.data[i] } else { 0 };
213213
let (hi, lo) = BigDigit::from_uint(
@@ -216,8 +216,8 @@ impl Add<BigUint, BigUint> for BigUint {
216216
carry = hi;
217217
lo
218218
};
219-
if carry == 0 { return BigUint::new(sum) };
220-
return BigUint::new(sum + [carry]);
219+
if carry != 0 { sum.push(carry); }
220+
return BigUint::new(sum);
221221
}
222222
}
223223

@@ -284,15 +284,15 @@ impl Mul<BigUint, BigUint> for BigUint {
284284
if n == 1 { return copy *a; }
285285

286286
let mut carry = 0;
287-
let prod = do a.data.iter().transform |ai| {
287+
let mut prod = do a.data.iter().transform |ai| {
288288
let (hi, lo) = BigDigit::from_uint(
289289
(*ai as uint) * (n as uint) + (carry as uint)
290290
);
291291
carry = hi;
292292
lo
293293
}.collect::<~[BigDigit]>();
294-
if carry == 0 { return BigUint::new(prod) };
295-
return BigUint::new(prod + [carry]);
294+
if carry != 0 { prod.push(carry); }
295+
return BigUint::new(prod);
296296
}
297297

298298

@@ -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
}
@@ -619,15 +621,15 @@ impl BigUint {
619621
if n_bits == 0 || self.is_zero() { return copy *self; }
620622

621623
let mut carry = 0;
622-
let shifted = do self.data.iter().transform |elem| {
624+
let mut shifted = do self.data.iter().transform |elem| {
623625
let (hi, lo) = BigDigit::from_uint(
624626
(*elem as uint) << n_bits | (carry as uint)
625627
);
626628
carry = hi;
627629
lo
628630
}.collect::<~[BigDigit]>();
629-
if carry == 0 { return BigUint::new(shifted); }
630-
return BigUint::new(shifted + [carry]);
631+
if carry != 0 { shifted.push(carry); }
632+
return BigUint::new(shifted);
631633
}
632634

633635

@@ -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/libextra/par.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ fn map_slices<A:Copy + Send,B:Copy + Send>(
5353
info!("spawning tasks");
5454
while base < len {
5555
let end = uint::min(len, base + items_per_task);
56-
do vec::as_imm_buf(xs) |p, _len| {
56+
do xs.as_imm_buf |p, _len| {
5757
let f = f();
5858
let base = base;
5959
let f = do future_spawn() || {
@@ -78,11 +78,10 @@ fn map_slices<A:Copy + Send,B:Copy + Send>(
7878
info!("num_tasks: %?", (num_tasks, futures.len()));
7979
assert_eq!(num_tasks, futures.len());
8080

81-
let r = do vec::map_consume(futures) |ys| {
81+
do futures.consume_iter().transform |ys| {
8282
let mut ys = ys;
8383
ys.get()
84-
};
85-
r
84+
}.collect()
8685
}
8786
}
8887

src/libextra/test.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ fn run_tests(opts: &TestOpts,
477477
}
478478
479479
// All benchmarks run at the end, in serial.
480-
do vec::consume(filtered_benchs) |_, b| {
480+
for filtered_benchs.consume_iter().advance |b| {
481481
callback(TeWait(copy b.desc));
482482
run_test(!opts.run_benchmarks, b, ch.clone());
483483
let (test, result) = p.recv();
@@ -523,7 +523,7 @@ pub fn filter_tests(
523523
} else { return option::None; }
524524
}
525525
526-
vec::filter_map(filtered, |x| filter_fn(x, filter_str))
526+
filtered.consume_iter().filter_map(|x| filter_fn(x, filter_str)).collect()
527527
};
528528
529529
// Maybe pull out the ignored test and unignore them
@@ -541,7 +541,7 @@ pub fn filter_tests(
541541
None
542542
}
543543
};
544-
vec::filter_map(filtered, |x| filter(x))
544+
filtered.consume_iter().filter_map(|x| filter(x)).collect()
545545
};
546546
547547
// Sort the tests alphabetically
@@ -720,9 +720,9 @@ impl BenchHarness {
720720
// Eliminate outliers
721721
let med = samples.median();
722722
let mad = samples.median_abs_dev();
723-
let samples = do vec::filter(samples) |f| {
723+
let samples = do samples.consume_iter().filter |f| {
724724
num::abs(*f - med) <= 3.0 * mad
725-
};
725+
}.collect::<~[f64]>();
726726
727727
debug!("%u samples, median %f, MAD=%f, %u survived filter",
728728
n_samples, med as float, mad as float,

src/libextra/uv_ll.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1046,7 +1046,7 @@ pub unsafe fn ip4_name(src: &sockaddr_in) -> ~str {
10461046
// ipv4 addr max size: 15 + 1 trailing null byte
10471047
let dst: ~[u8] = ~[0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,
10481048
0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8];
1049-
do vec::as_imm_buf(dst) |dst_buf, size| {
1049+
do dst.as_imm_buf |dst_buf, size| {
10501050
rust_uv_ip4_name(to_unsafe_ptr(src),
10511051
dst_buf, size as libc::size_t);
10521052
// seems that checking the result of uv_ip4_name
@@ -1066,7 +1066,7 @@ pub unsafe fn ip6_name(src: &sockaddr_in6) -> ~str {
10661066
0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,
10671067
0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,
10681068
0u8,0u8,0u8,0u8,0u8,0u8];
1069-
do vec::as_imm_buf(dst) |dst_buf, size| {
1069+
do dst.as_imm_buf |dst_buf, size| {
10701070
let src_unsafe_ptr = to_unsafe_ptr(src);
10711071
let result = rust_uv_ip6_name(src_unsafe_ptr,
10721072
dst_buf, size as libc::size_t);

src/librustc/back/link.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,7 @@ pub fn link_args(sess: Session,
893893
// Add all the link args for external crates.
894894
do cstore::iter_crate_data(cstore) |crate_num, _| {
895895
let link_args = csearch::get_link_args_for_crate(cstore, crate_num);
896-
do vec::consume(link_args) |_, link_arg| {
896+
for link_args.consume_iter().advance |link_arg| {
897897
args.push(link_arg);
898898
}
899899
}

src/librustc/driver/driver.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ pub fn build_configuration(sess: Session, argv0: @str, input: &input) ->
123123
// Convert strings provided as --cfg [cfgspec] into a crate_cfg
124124
fn parse_cfgspecs(cfgspecs: ~[~str],
125125
demitter: diagnostic::Emitter) -> ast::crate_cfg {
126-
do vec::map_consume(cfgspecs) |s| {
126+
do cfgspecs.consume_iter().transform |s| {
127127
let sess = parse::new_parse_sess(Some(demitter));
128128
parse::parse_meta_from_source_str(@"cfgspec", s.to_managed(), ~[], sess)
129-
}
129+
}.collect()
130130
}
131131

132132
pub enum input {

0 commit comments

Comments
 (0)