Skip to content

Commit 49c7452

Browse files
committed
vec: rm old_iter implementations, except BaseIter
The removed test for issue #2611 is well covered by the `std::iterator` module itself. This adds the `count` method to `IteratorUtil` to replace `EqIter`.
1 parent cbad1da commit 49c7452

Some content is hidden

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

96 files changed

+310
-490
lines changed

doc/tutorial-tasks.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ let ports = do vec::from_fn(3) |init_val| {
283283
};
284284
285285
// Wait on each port, accumulating the results
286-
let result = ports.foldl(0, |accum, port| *accum + port.recv() );
286+
let result = ports.iter().fold(0, |accum, port| accum + port.recv() );
287287
# fn some_expensive_computation(_i: uint) -> int { 42 }
288288
~~~
289289

src/libextra/bitv.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ impl BitvSet {
639639
if self.capacity() < other.capacity() {
640640
self.bitv.storage.grow(other.capacity() / uint::bits, &0);
641641
}
642-
for other.bitv.storage.eachi |i, &w| {
642+
for other.bitv.storage.iter().enumerate().advance |(i, &w)| {
643643
let old = self.bitv.storage[i];
644644
let new = f(old, w);
645645
self.bitv.storage[i] = new;
@@ -672,7 +672,7 @@ impl BaseIter<uint> for BitvSet {
672672
fn size_hint(&self) -> Option<uint> { Some(self.len()) }
673673

674674
fn each(&self, blk: &fn(v: &uint) -> bool) -> bool {
675-
for self.bitv.storage.eachi |i, &w| {
675+
for self.bitv.storage.iter().enumerate().advance |(i, &w)| {
676676
if !iterate_bits(i * uint::bits, w, |b| blk(&b)) {
677677
return false;
678678
}
@@ -826,7 +826,7 @@ impl BitvSet {
826826
f: &fn(uint, uint, uint) -> bool) -> bool {
827827
let min = uint::min(self.bitv.storage.len(),
828828
other.bitv.storage.len());
829-
self.bitv.storage.slice(0, min).eachi(|i, &w| {
829+
self.bitv.storage.slice(0, min).iter().enumerate().advance(|(i, &w)| {
830830
f(i * uint::bits, w, other.bitv.storage[i])
831831
})
832832
}
@@ -845,12 +845,12 @@ impl BitvSet {
845845
let min = uint::min(len1, len2);
846846

847847
/* only one of these loops will execute and that's the point */
848-
for self.bitv.storage.slice(min, len1).eachi |i, &w| {
848+
for self.bitv.storage.slice(min, len1).iter().enumerate().advance |(i, &w)| {
849849
if !f(true, (i + min) * uint::bits, w) {
850850
return false;
851851
}
852852
}
853-
for other.bitv.storage.slice(min, len2).eachi |i, &w| {
853+
for other.bitv.storage.slice(min, len2).iter().enumerate().advance |(i, &w)| {
854854
if !f(false, (i + min) * uint::bits, w) {
855855
return false;
856856
}

src/libextra/fileinput.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ mod test {
448448
|i| fmt!("tmp/lib-fileinput-test-fileinput-read-byte-%u.tmp", i)), true);
449449
450450
// 3 files containing 0\n, 1\n, and 2\n respectively
451-
for filenames.eachi |i, &filename| {
451+
for filenames.iter().enumerate().advance |(i, &filename)| {
452452
make_file(filename.get_ref(), [fmt!("%u", i)]);
453453
}
454454
@@ -478,7 +478,7 @@ mod test {
478478
|i| fmt!("tmp/lib-fileinput-test-fileinput-read-%u.tmp", i)), true);
479479
480480
// 3 files containing 1\n, 2\n, and 3\n respectively
481-
for filenames.eachi |i, &filename| {
481+
for filenames.iter().enumerate().advance |(i, &filename)| {
482482
make_file(filename.get_ref(), [fmt!("%u", i)]);
483483
}
484484
@@ -498,7 +498,7 @@ mod test {
498498
3,
499499
|i| fmt!("tmp/lib-fileinput-test-input-vec-%u.tmp", i)), true);
500500

501-
for filenames.eachi |i, &filename| {
501+
for filenames.iter().enumerate().advance |(i, &filename)| {
502502
let contents =
503503
vec::from_fn(3, |j| fmt!("%u %u", i, j));
504504
make_file(filename.get_ref(), contents);
@@ -518,7 +518,7 @@ mod test {
518518
3,
519519
|i| fmt!("tmp/lib-fileinput-test-input-vec-state-%u.tmp", i)),true);
520520

521-
for filenames.eachi |i, &filename| {
521+
for filenames.iter().enumerate().advance |(i, &filename)| {
522522
let contents =
523523
vec::from_fn(3, |j| fmt!("%u %u", i, j + 1));
524524
make_file(filename.get_ref(), contents);
@@ -582,7 +582,7 @@ mod test {
582582
3,
583583
|i| fmt!("tmp/lib-fileinput-test-next-file-%u.tmp", i)),true);
584584
585-
for filenames.eachi |i, &filename| {
585+
for filenames.iter().enumerate().advance |(i, &filename)| {
586586
let contents =
587587
vec::from_fn(3, |j| fmt!("%u %u", i, j + 1));
588588
make_file(&filename.get(), contents);

src/libextra/flatpipes.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,11 @@ impl<T,U:Unflattener<T>,P:BytePort> GenericPort<T> for FlatPort<T, U, P> {
307307

308308
impl<T,F:Flattener<T>,C:ByteChan> GenericChan<T> for FlatChan<T, F, C> {
309309
fn send(&self, val: T) {
310-
self.byte_chan.send(CONTINUE.to_vec());
310+
self.byte_chan.send(CONTINUE.to_owned());
311311
let bytes = self.flattener.flatten(val);
312312
let len = bytes.len() as u64;
313313
do io::u64_to_be_bytes(len, size_of::<u64>()) |len_bytes| {
314-
self.byte_chan.send(len_bytes.to_vec());
314+
self.byte_chan.send(len_bytes.to_owned());
315315
}
316316
self.byte_chan.send(bytes);
317317
}
@@ -937,7 +937,7 @@ mod test {
937937
fn test_try_recv_none3<P:BytePort>(loader: PortLoader<P>) {
938938
static CONTINUE: [u8, ..4] = [0xAA, 0xBB, 0xCC, 0xDD];
939939
// The control word is followed by garbage
940-
let bytes = CONTINUE.to_vec() + [0];
940+
let bytes = CONTINUE.to_owned() + [0];
941941
let port = loader(bytes);
942942
let res: Option<int> = port.try_recv();
943943
assert!(res.is_none());
@@ -959,9 +959,9 @@ mod test {
959959
// then undeserializable garbage
960960
let len_bytes = do io::u64_to_be_bytes(
961961
1, sys::size_of::<u64>()) |len_bytes| {
962-
len_bytes.to_vec()
962+
len_bytes.to_owned()
963963
};
964-
let bytes = CONTINUE.to_vec() + len_bytes + [0, 0, 0, 0];
964+
let bytes = CONTINUE.to_owned() + len_bytes + [0, 0, 0, 0];
965965

966966
let port = loader(bytes);
967967

src/libextra/net_ip.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ pub mod v4 {
205205
}).collect();
206206
if parts.len() != 4 {
207207
Err(fmt!("'%s' doesn't have 4 parts", ip))
208-
} else if parts.contains(&256) {
208+
} else if parts.iter().any_(|x| *x == 256u) {
209209
Err(fmt!("invalid octal in addr '%s'", ip))
210210
} else {
211211
Ok(Ipv4Rep {

src/libextra/net_tcp.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -978,7 +978,7 @@ impl io::Writer for TcpSocketBuf {
978978
let w_result = write_common_impl(socket_data_ptr,
979979
vec::slice(data,
980980
0,
981-
data.len()).to_vec());
981+
data.len()).to_owned());
982982
if w_result.is_err() {
983983
let err_data = w_result.get_err();
984984
debug!(

src/libextra/net_url.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -519,8 +519,9 @@ fn get_authority(rawurl: &str) ->
519519
let end = end; // make end immutable so it can be captured
520520

521521
let host_is_end_plus_one: &fn() -> bool = || {
522+
let xs = ['?', '#', '/'];
522523
end+1 == len
523-
&& !['?', '#', '/'].contains(&(rawurl[end] as char))
524+
&& !xs.iter().any_(|x| *x == (rawurl[end] as char))
524525
};
525526

526527
// finish up

src/libextra/num/bigint.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1175,8 +1175,8 @@ mod biguint_tests {
11751175
fn test_cmp() {
11761176
let data = [ &[], &[1], &[2], &[-1], &[0, 1], &[2, 1], &[1, 1, 1] ]
11771177
.map(|v| BigUint::from_slice(*v));
1178-
for data.eachi |i, ni| {
1179-
for vec::slice(data, i, data.len()).eachi |j0, nj| {
1178+
for data.iter().enumerate().advance |(i, ni)| {
1179+
for vec::slice(data, i, data.len()).iter().enumerate().advance |(j0, nj)| {
11801180
let j = j0 + i;
11811181
if i == j {
11821182
assert_eq!(ni.cmp(nj), Equal);
@@ -1651,8 +1651,8 @@ mod bigint_tests {
16511651
nums.push(Zero::zero());
16521652
nums.push_all_move(vs.map(|s| BigInt::from_slice(Plus, *s)));
16531653

1654-
for nums.eachi |i, ni| {
1655-
for vec::slice(nums, i, nums.len()).eachi |j0, nj| {
1654+
for nums.iter().enumerate().advance |(i, ni)| {
1655+
for vec::slice(nums, i, nums.len()).iter().enumerate().advance |(j0, nj)| {
16561656
let j = i + j0;
16571657
if i == j {
16581658
assert_eq!(ni.cmp(nj), Equal);

src/libextra/serialize.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ impl<D:Decoder,T:Decodable<D>> Decodable<D> for @T {
432432
impl<'self, S:Encoder,T:Encodable<S>> Encodable<S> for &'self [T] {
433433
fn encode(&self, s: &mut S) {
434434
do s.emit_seq(self.len()) |s| {
435-
for self.eachi |i, e| {
435+
for self.iter().enumerate().advance |(i, e)| {
436436
s.emit_seq_elt(i, |s| e.encode(s))
437437
}
438438
}
@@ -442,7 +442,7 @@ impl<'self, S:Encoder,T:Encodable<S>> Encodable<S> for &'self [T] {
442442
impl<S:Encoder,T:Encodable<S>> Encodable<S> for ~[T] {
443443
fn encode(&self, s: &mut S) {
444444
do s.emit_seq(self.len()) |s| {
445-
for self.eachi |i, e| {
445+
for self.iter().enumerate().advance |(i, e)| {
446446
s.emit_seq_elt(i, |s| e.encode(s))
447447
}
448448
}
@@ -462,7 +462,7 @@ impl<D:Decoder,T:Decodable<D>> Decodable<D> for ~[T] {
462462
impl<S:Encoder,T:Encodable<S>> Encodable<S> for @[T] {
463463
fn encode(&self, s: &mut S) {
464464
do s.emit_seq(self.len()) |s| {
465-
for self.eachi |i, e| {
465+
for self.iter().enumerate().advance |(i, e)| {
466466
s.emit_seq_elt(i, |s| e.encode(s))
467467
}
468468
}
@@ -901,7 +901,7 @@ pub trait EncoderHelpers {
901901
impl<S:Encoder> EncoderHelpers for S {
902902
fn emit_from_vec<T>(&mut self, v: &[T], f: &fn(&mut S, &T)) {
903903
do self.emit_seq(v.len()) |this| {
904-
for v.eachi |i, e| {
904+
for v.iter().enumerate().advance |(i, e)| {
905905
do this.emit_seq_elt(i) |this| {
906906
f(this, e)
907907
}

src/libextra/sort.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ fn copy_vec<T:Copy>(dest: &mut [T],
731731
from: &[T]) {
732732
assert!(s1+from.len() <= dest.len());
733733

734-
for from.eachi |i, v| {
734+
for from.iter().enumerate().advance |(i, v)| {
735735
dest[s1+i] = copy *v;
736736
}
737737
}
@@ -743,7 +743,7 @@ fn shift_vec<T:Copy>(dest: &mut [T],
743743
len: uint) {
744744
assert!(s1+len <= dest.len());
745745

746-
let tmp = dest.slice(s2, s2+len).to_vec();
746+
let tmp = dest.slice(s2, s2+len).to_owned();
747747
copy_vec(dest, s1, tmp);
748748
}
749749

src/libextra/terminfo/parser/compiled.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ pub fn parse(file: @Reader, longnames: bool) -> Result<~TermInfo, ~str> {
271271
return Err(~"error: hit EOF before end of string table");
272272
}
273273

274-
for string_offsets.eachi |i, v| {
274+
for string_offsets.iter().enumerate().advance |(i, v)| {
275275
let offset = *v;
276276
if offset == 0xFFFF { // non-entry
277277
loop;

src/libextra/treemap.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -853,7 +853,7 @@ mod test_treemap {
853853
for 90.times {
854854
let k = rng.gen();
855855
let v = rng.gen();
856-
if !ctrl.contains(&(k, v)) {
856+
if !ctrl.iter().any_(|x| x == &(k, v)) {
857857
assert!(map.insert(k, v));
858858
ctrl.push((k, v));
859859
check_structure(&map);

src/librust/rust.rc

+2-2
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ fn rustc_help() {
135135
}
136136

137137
fn find_cmd(command_string: &str) -> Option<Command> {
138-
do commands.find |command| {
138+
do commands.iter().find_ |command| {
139139
command.cmd == command_string
140-
}
140+
}.map_consume(|x| copy *x)
141141
}
142142

143143
fn cmd_help(args: &[~str]) -> ValidUsage {

src/librustc/front/config.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,13 @@ pub fn metas_in_cfg(cfg: ast::crate_cfg,
197197
// which the item is valid
198198
let cfg_metas = vec::filter_map(cfg_metas, |i| attr::get_meta_item_list(i));
199199

200-
if cfg_metas.all(|c| c.is_empty()) { return true; }
200+
if cfg_metas.iter().all(|c| c.is_empty()) { return true; }
201201

202-
cfg_metas.any(|cfg_meta| {
203-
cfg_meta.all(|cfg_mi| {
202+
cfg_metas.iter().any_(|cfg_meta| {
203+
cfg_meta.iter().all(|cfg_mi| {
204204
match cfg_mi.node {
205205
ast::meta_list(s, ref it) if "not" == s
206-
=> it.all(|mi| !attr::contains(cfg, *mi)),
206+
=> it.iter().all(|mi| !attr::contains(cfg, *mi)),
207207
_ => attr::contains(cfg, *cfg_mi)
208208
}
209209
})

src/librustc/lib/llvm.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2157,7 +2157,7 @@ pub fn type_to_str_inner(names: @TypeNames, outer0: &[TypeRef], ty: TypeRef)
21572157
_ => {}
21582158
}
21592159

2160-
let outer = vec::append_one(outer0.to_vec(), ty);
2160+
let outer = vec::append_one(outer0.to_owned(), ty);
21612161

21622162
let kind = llvm::LLVMGetTypeKind(ty);
21632163

src/librustc/metadata/creader.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,16 @@ fn warn_if_multiple_versions(e: @mut Env,
8585
*crate_cache[crate_cache.len() - 1].metas
8686
);
8787

88-
let (matches, non_matches) =
89-
partition(crate_cache.map_to_vec(|&entry| {
90-
let othername = loader::crate_name_from_metas(
91-
copy *entry.metas);
92-
if name == othername {
93-
Left(entry)
94-
} else {
95-
Right(entry)
96-
}
97-
}));
88+
let vec: ~[Either<cache_entry, cache_entry>] = crate_cache.iter().transform(|&entry| {
89+
let othername = loader::crate_name_from_metas(
90+
copy *entry.metas);
91+
if name == othername {
92+
Left(entry)
93+
} else {
94+
Right(entry)
95+
}
96+
}).collect();
97+
let (matches, non_matches) = partition(vec);
9898

9999
assert!(!matches.is_empty());
100100

src/librustc/metadata/cstore.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ pub fn get_used_crate_files(cstore: &CStore) -> ~[Path] {
104104
pub fn add_used_library(cstore: &mut CStore, lib: @str) -> bool {
105105
assert!(!lib.is_empty());
106106

107-
if cstore.used_libraries.contains(&lib) { return false; }
107+
if cstore.used_libraries.iter().any_(|x| x == &lib) { return false; }
108108
cstore.used_libraries.push(lib);
109109
true
110110
}

src/librustc/metadata/encoder.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,8 @@ fn encode_info_for_item(ecx: &EncodeContext,
10141014
ebml_w.end_tag();
10151015

10161016
// Now output the method info for each method.
1017-
for ty::trait_method_def_ids(tcx, local_def(item.id)).eachi |i, &method_def_id| {
1017+
let r = ty::trait_method_def_ids(tcx, local_def(item.id));
1018+
for r.iter().enumerate().advance |(i, &method_def_id)| {
10181019
assert_eq!(method_def_id.crate, ast::local_crate);
10191020

10201021
let method_ty = ty::method(tcx, method_def_id);

src/librustc/middle/borrowck/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ fn borrowck_fn(fk: &visit::fn_kind,
132132
LoanDataFlowOperator,
133133
id_range,
134134
all_loans.len());
135-
for all_loans.eachi |loan_idx, loan| {
135+
for all_loans.iter().enumerate().advance |(loan_idx, loan)| {
136136
loan_dfcx.add_gen(loan.gen_scope, loan_idx);
137137
loan_dfcx.add_kill(loan.kill_scope, loan_idx);
138138
}

src/librustc/middle/borrowck/move_data.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -348,11 +348,11 @@ impl MoveData {
348348
* killed by scoping. See `doc.rs` for more details.
349349
*/
350350

351-
for self.moves.eachi |i, move| {
351+
for self.moves.iter().enumerate().advance |(i, move)| {
352352
dfcx_moves.add_gen(move.id, i);
353353
}
354354

355-
for self.var_assignments.eachi |i, assignment| {
355+
for self.var_assignments.iter().enumerate().advance |(i, assignment)| {
356356
dfcx_assign.add_gen(assignment.id, i);
357357
self.kill_moves(assignment.path, assignment.id, dfcx_moves);
358358
}
@@ -375,7 +375,7 @@ impl MoveData {
375375
}
376376

377377
// Kill all assignments when the variable goes out of scope:
378-
for self.var_assignments.eachi |assignment_index, assignment| {
378+
for self.var_assignments.iter().enumerate().advance |(assignment_index, assignment)| {
379379
match *self.path(assignment.path).loan_path {
380380
LpVar(id) => {
381381
let kill_id = tcx.region_maps.encl_scope(id);

src/librustc/middle/check_const.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ pub fn check_item_recursion(sess: Session,
225225
(visitor.visit_item)(it, (env, visitor));
226226

227227
fn visit_item(it: @item, (env, v): (env, visit::vt<env>)) {
228-
if env.idstack.contains(&(it.id)) {
228+
if env.idstack.iter().any_(|x| x == &(it.id)) {
229229
env.sess.span_fatal(env.root_it.span, "recursive constant");
230230
}
231231
env.idstack.push(it.id);

0 commit comments

Comments
 (0)