diff options
| author | bors <bors@rust-lang.org> | 2013-06-21 01:49:50 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-06-21 01:49:50 -0700 |
| commit | b0e3ffd3805203420846296bc7d5a3c13dfd8b3a (patch) | |
| tree | 791c56423464c90ff6f14a56992ae62f621d4665 /src/librustc | |
| parent | ba05af7b1cbb5ccf25226ca5cd8d84f872426466 (diff) | |
| parent | 06bec77fafb1c30052b9c69a3fb17b2835cb608f (diff) | |
| download | rust-b0e3ffd3805203420846296bc7d5a3c13dfd8b3a.tar.gz rust-b0e3ffd3805203420846296bc7d5a3c13dfd8b3a.zip | |
auto merge of #7263 : thestinger/rust/iterator, r=graydon
Diffstat (limited to 'src/librustc')
48 files changed, 171 insertions, 173 deletions
diff --git a/src/librustc/front/config.rs b/src/librustc/front/config.rs index 3e6ac283da0..517b3f9ed85 100644 --- a/src/librustc/front/config.rs +++ b/src/librustc/front/config.rs @@ -197,13 +197,13 @@ pub fn metas_in_cfg(cfg: ast::crate_cfg, // which the item is valid let cfg_metas = vec::filter_map(cfg_metas, |i| attr::get_meta_item_list(i)); - if cfg_metas.all(|c| c.is_empty()) { return true; } + if cfg_metas.iter().all(|c| c.is_empty()) { return true; } - cfg_metas.any(|cfg_meta| { - cfg_meta.all(|cfg_mi| { + cfg_metas.iter().any_(|cfg_meta| { + cfg_meta.iter().all(|cfg_mi| { match cfg_mi.node { ast::meta_list(s, ref it) if "not" == s - => it.all(|mi| !attr::contains(cfg, *mi)), + => it.iter().all(|mi| !attr::contains(cfg, *mi)), _ => attr::contains(cfg, *cfg_mi) } }) diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs index 5d5a5e736bc..8d6cad62e75 100644 --- a/src/librustc/lib/llvm.rs +++ b/src/librustc/lib/llvm.rs @@ -2157,7 +2157,7 @@ pub fn type_to_str_inner(names: @TypeNames, outer0: &[TypeRef], ty: TypeRef) _ => {} } - let outer = vec::append_one(outer0.to_vec(), ty); + let outer = vec::append_one(outer0.to_owned(), ty); let kind = llvm::LLVMGetTypeKind(ty); diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index e95c841b9f7..c8b0f4a488a 100644 --- a/src/librustc/metadata/creader.rs +++ b/src/librustc/metadata/creader.rs @@ -85,16 +85,16 @@ fn warn_if_multiple_versions(e: @mut Env, *crate_cache[crate_cache.len() - 1].metas ); - let (matches, non_matches) = - partition(crate_cache.map_to_vec(|&entry| { - let othername = loader::crate_name_from_metas( - copy *entry.metas); - if name == othername { - Left(entry) - } else { - Right(entry) - } - })); + let vec: ~[Either<cache_entry, cache_entry>] = crate_cache.iter().transform(|&entry| { + let othername = loader::crate_name_from_metas( + copy *entry.metas); + if name == othername { + Left(entry) + } else { + Right(entry) + } + }).collect(); + let (matches, non_matches) = partition(vec); assert!(!matches.is_empty()); diff --git a/src/librustc/metadata/cstore.rs b/src/librustc/metadata/cstore.rs index 2819340ae45..399ad215fdb 100644 --- a/src/librustc/metadata/cstore.rs +++ b/src/librustc/metadata/cstore.rs @@ -104,7 +104,7 @@ pub fn get_used_crate_files(cstore: &CStore) -> ~[Path] { pub fn add_used_library(cstore: &mut CStore, lib: @str) -> bool { assert!(!lib.is_empty()); - if cstore.used_libraries.contains(&lib) { return false; } + if cstore.used_libraries.iter().any_(|x| x == &lib) { return false; } cstore.used_libraries.push(lib); true } diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 5d5d7582b5f..bc2e95f4d1b 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -1014,7 +1014,8 @@ fn encode_info_for_item(ecx: &EncodeContext, ebml_w.end_tag(); // Now output the method info for each method. - for ty::trait_method_def_ids(tcx, local_def(item.id)).eachi |i, &method_def_id| { + let r = ty::trait_method_def_ids(tcx, local_def(item.id)); + for r.iter().enumerate().advance |(i, &method_def_id)| { assert_eq!(method_def_id.crate, ast::local_crate); let method_ty = ty::method(tcx, method_def_id); diff --git a/src/librustc/middle/borrowck/mod.rs b/src/librustc/middle/borrowck/mod.rs index d7186ad9333..745e792eec7 100644 --- a/src/librustc/middle/borrowck/mod.rs +++ b/src/librustc/middle/borrowck/mod.rs @@ -132,7 +132,7 @@ fn borrowck_fn(fk: &visit::fn_kind, LoanDataFlowOperator, id_range, all_loans.len()); - for all_loans.eachi |loan_idx, loan| { + for all_loans.iter().enumerate().advance |(loan_idx, loan)| { loan_dfcx.add_gen(loan.gen_scope, loan_idx); loan_dfcx.add_kill(loan.kill_scope, loan_idx); } diff --git a/src/librustc/middle/borrowck/move_data.rs b/src/librustc/middle/borrowck/move_data.rs index 3b1c451d0a6..0ed909b6482 100644 --- a/src/librustc/middle/borrowck/move_data.rs +++ b/src/librustc/middle/borrowck/move_data.rs @@ -348,11 +348,11 @@ impl MoveData { * killed by scoping. See `doc.rs` for more details. */ - for self.moves.eachi |i, move| { + for self.moves.iter().enumerate().advance |(i, move)| { dfcx_moves.add_gen(move.id, i); } - for self.var_assignments.eachi |i, assignment| { + for self.var_assignments.iter().enumerate().advance |(i, assignment)| { dfcx_assign.add_gen(assignment.id, i); self.kill_moves(assignment.path, assignment.id, dfcx_moves); } @@ -375,7 +375,7 @@ impl MoveData { } // Kill all assignments when the variable goes out of scope: - for self.var_assignments.eachi |assignment_index, assignment| { + for self.var_assignments.iter().enumerate().advance |(assignment_index, assignment)| { match *self.path(assignment.path).loan_path { LpVar(id) => { let kill_id = tcx.region_maps.encl_scope(id); diff --git a/src/librustc/middle/check_const.rs b/src/librustc/middle/check_const.rs index f44fb0e058b..79fe6420e27 100644 --- a/src/librustc/middle/check_const.rs +++ b/src/librustc/middle/check_const.rs @@ -225,7 +225,7 @@ pub fn check_item_recursion(sess: Session, (visitor.visit_item)(it, (env, visitor)); fn visit_item(it: @item, (env, v): (env, visit::vt<env>)) { - if env.idstack.contains(&(it.id)) { + if env.idstack.iter().any_(|x| x == &(it.id)) { env.sess.span_fatal(env.root_it.span, "recursive constant"); } env.idstack.push(it.id); diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index ad89d790761..346e2162385 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -155,7 +155,7 @@ pub fn check_exhaustive(cx: @MatchCheckCtxt, sp: span, pats: ~[@pat]) { }; let variants = ty::enum_variants(cx.tcx, id); - match variants.find(|v| v.id == vid) { + match variants.iter().find_(|v| v.id == vid) { Some(v) => Some(cx.tcx.sess.str_of(v.name)), None => { fail!("check_exhaustive: bad variant in ctor") @@ -208,7 +208,7 @@ pub enum ctor { pub fn is_useful(cx: @MatchCheckCtxt, m: &matrix, v: &[@pat]) -> useful { if m.len() == 0u { return useful_; } if m[0].len() == 0u { return not_useful; } - let real_pat = match m.find(|r| r[0].id != 0) { + let real_pat = match m.iter().find_(|r| r[0].id != 0) { Some(r) => r[0], None => v[0] }; let left_ty = if real_pat.id == 0 { ty::mk_nil() } @@ -372,7 +372,7 @@ pub fn missing_ctor(cx: @MatchCheckCtxt, let variants = ty::enum_variants(cx.tcx, eid); if found.len() != (*variants).len() { for (*variants).each |v| { - if !found.contains(&(variant(v.id))) { + if !found.iter().any_(|x| x == &(variant(v.id))) { return Some(variant(v.id)); } } @@ -456,7 +456,7 @@ pub fn ctor_arity(cx: @MatchCheckCtxt, ctor: &ctor, ty: ty::t) -> uint { ty::ty_enum(eid, _) => { let id = match *ctor { variant(id) => id, _ => fail!("impossible case") }; - match vec::find(*ty::enum_variants(cx.tcx, eid), |v| v.id == id ) { + match ty::enum_variants(cx.tcx, eid).iter().find_(|v| v.id == id ) { Some(v) => v.args.len(), None => fail!("impossible case") } @@ -613,7 +613,7 @@ pub fn specialize(cx: @MatchCheckCtxt, if variant(variant_id) == *ctor_id { // FIXME #4731: Is this right? --pcw let args = flds.map(|ty_field| { - match flds.find(|f| + match flds.iter().find_(|f| f.ident == ty_field.ident) { Some(f) => f.pat, _ => wild() @@ -644,7 +644,7 @@ pub fn specialize(cx: @MatchCheckCtxt, } } let args = vec::map(class_fields, |class_field| { - match flds.find(|f| + match flds.iter().find_(|f| f.ident == class_field.ident) { Some(f) => f.pat, _ => wild() @@ -806,13 +806,13 @@ pub fn is_refutable(cx: @MatchCheckCtxt, pat: &pat) -> bool { } pat_lit(_) | pat_range(_, _) => { true } pat_struct(_, ref fields, _) => { - fields.any(|f| is_refutable(cx, f.pat)) + fields.iter().any_(|f| is_refutable(cx, f.pat)) } pat_tup(ref elts) => { - elts.any(|elt| is_refutable(cx, *elt)) + elts.iter().any_(|elt| is_refutable(cx, *elt)) } pat_enum(_, Some(ref args)) => { - args.any(|a| is_refutable(cx, *a)) + args.iter().any_(|a| is_refutable(cx, *a)) } pat_enum(_,_) => { false } pat_vec(*) => { true } diff --git a/src/librustc/middle/dataflow.rs b/src/librustc/middle/dataflow.rs index b4942fba05d..1e14a558db2 100644 --- a/src/librustc/middle/dataflow.rs +++ b/src/librustc/middle/dataflow.rs @@ -266,7 +266,7 @@ impl<O:DataFlowOperator> DataFlowContext<O> { f: &fn(uint) -> bool) -> bool { //! Helper for iterating over the bits in a bit set. - for words.eachi |word_index, &word| { + for words.iter().enumerate().advance |(word_index, &word)| { if word != 0 { let base_index = word_index * uint::bits; for uint::range(0, uint::bits) |offset| { @@ -342,14 +342,14 @@ impl<O:DataFlowOperator+Copy+'static> DataFlowContext<O> { let entry_str = bits_to_str(on_entry); let gens = vec::slice(self.gens, start, end); - let gens_str = if gens.any(|&u| u != 0) { + let gens_str = if gens.iter().any_(|&u| u != 0) { fmt!(" gen: %s", bits_to_str(gens)) } else { ~"" }; let kills = vec::slice(self.kills, start, end); - let kills_str = if kills.any(|&u| u != 0) { + let kills_str = if kills.iter().any_(|&u| u != 0) { fmt!(" kill: %s", bits_to_str(kills)) } else { ~"" @@ -503,12 +503,12 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // func_bits represents the state when the function // returns - let mut func_bits = reslice(in_out).to_vec(); + let mut func_bits = reslice(in_out).to_owned(); loop_scopes.push(LoopScope { loop_id: expr.id, loop_kind: ForLoop, - break_bits: reslice(in_out).to_vec() + break_bits: reslice(in_out).to_owned() }); for decl.inputs.each |input| { self.walk_pat(input.pat, func_bits, loop_scopes); @@ -547,7 +547,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // self.walk_expr(cond, in_out, loop_scopes); - let mut then_bits = reslice(in_out).to_vec(); + let mut then_bits = reslice(in_out).to_owned(); self.walk_block(then, then_bits, loop_scopes); self.walk_opt_expr(els, in_out, loop_scopes); @@ -569,11 +569,11 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { self.walk_expr(cond, in_out, loop_scopes); - let mut body_bits = reslice(in_out).to_vec(); + let mut body_bits = reslice(in_out).to_owned(); loop_scopes.push(LoopScope { loop_id: expr.id, loop_kind: TrueLoop, - break_bits: reslice(in_out).to_vec() + break_bits: reslice(in_out).to_owned() }); self.walk_block(blk, body_bits, loop_scopes); self.add_to_entry_set(expr.id, body_bits); @@ -591,12 +591,12 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // <--+ (break) // - let mut body_bits = reslice(in_out).to_vec(); + let mut body_bits = reslice(in_out).to_owned(); self.reset(in_out); loop_scopes.push(LoopScope { loop_id: expr.id, loop_kind: TrueLoop, - break_bits: reslice(in_out).to_vec() + break_bits: reslice(in_out).to_owned() }); self.walk_block(blk, body_bits, loop_scopes); self.add_to_entry_set(expr.id, body_bits); @@ -620,7 +620,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // self.walk_expr(discr, in_out, loop_scopes); - let mut guards = reslice(in_out).to_vec(); + let mut guards = reslice(in_out).to_owned(); // We know that exactly one arm will be taken, so we // can start out with a blank slate and just union @@ -633,7 +633,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // determine the bits for the body and then union // them into `in_out`, which reflects all bodies to date - let mut body = reslice(guards).to_vec(); + let mut body = reslice(guards).to_owned(); self.walk_pat_alternatives(arm.pats, body, loop_scopes); self.walk_block(&arm.body, body, loop_scopes); join_bits(&self.dfcx.oper, body, in_out); @@ -644,7 +644,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { self.walk_opt_expr(o_e, in_out, loop_scopes); // is this a return from a `for`-loop closure? - match loop_scopes.position(|s| s.loop_kind == ForLoop) { + match loop_scopes.iter().position_(|s| s.loop_kind == ForLoop) { Some(i) => { // if so, add the in_out bits to the state // upon exit. Remember that we cannot count @@ -735,7 +735,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { ast::expr_binary(_, op, l, r) if ast_util::lazy_binop(op) => { self.walk_expr(l, in_out, loop_scopes); - let temp = reslice(in_out).to_vec(); + let temp = reslice(in_out).to_owned(); self.walk_expr(r, in_out, loop_scopes); join_bits(&self.dfcx.oper, temp, in_out); } @@ -896,7 +896,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // In the general case, the patterns in `pats` are // alternatives, so we must treat this like an N-way select // statement. - let initial_state = reslice(in_out).to_vec(); + let initial_state = reslice(in_out).to_owned(); for pats.each |&pat| { let mut temp = copy initial_state; self.walk_pat(pat, temp, loop_scopes); @@ -917,7 +917,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { Some(_) => { match self.tcx().def_map.find(&expr.id) { Some(&ast::def_label(loop_id)) => { - match loop_scopes.position(|l| l.loop_id == loop_id) { + match loop_scopes.iter().position_(|l| l.loop_id == loop_id) { Some(i) => i, None => { self.tcx().sess.span_bug( diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs index 70ad0e1c3a9..6492850b668 100644 --- a/src/librustc/middle/kind.rs +++ b/src/librustc/middle/kind.rs @@ -477,7 +477,7 @@ pub fn check_cast_for_escaping_regions( // Check, based on the region associated with the trait, whether it can // possibly escape the enclosing fn item (note that all type parameters // must have been declared on the enclosing fn item). - if target_regions.any(|r| is_re_scope(*r)) { + if target_regions.iter().any_(|r| is_re_scope(*r)) { return; /* case (1) */ } @@ -492,7 +492,7 @@ pub fn check_cast_for_escaping_regions( |_r| { // FIXME(#5723) --- turn this check on once &Objects are usable // - // if !target_regions.any(|t_r| is_subregion_of(cx, *t_r, r)) { + // if !target_regions.iter().any_(|t_r| is_subregion_of(cx, *t_r, r)) { // cx.tcx.sess.span_err( // source.span, // fmt!("source contains borrowed pointer with lifetime \ @@ -506,7 +506,7 @@ pub fn check_cast_for_escaping_regions( |ty| { match ty::get(ty).sty { ty::ty_param(source_param) => { - if target_params.contains(&source_param) { + if target_params.iter().any_(|x| x == &source_param) { /* case (2) */ } else { check_durable(cx.tcx, ty, source.span); /* case (3) */ diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 7f54e265b7b..2f66ca0f516 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -90,7 +90,7 @@ impl LanguageItems { } pub fn each_item(&self, f: &fn(def_id: def_id, i: uint) -> bool) -> bool { - self.items.eachi(|i, &item| f(item.get(), i)) + self.items.iter().enumerate().advance(|(i, &item)| f(item.get(), i)) } pub fn item_name(index: uint) -> &'static str { diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index c0421b2d474..054498545b7 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -1003,7 +1003,7 @@ fn lint_missing_doc() -> visit::vt<@mut Context> { // If we have doc(hidden), nothing to do if cx.doc_hidden { return } // If we're documented, nothing to do - if attrs.any(|a| a.node.is_sugared_doc) { return } + if attrs.iter().any_(|a| a.node.is_sugared_doc) { return } // otherwise, warn! cx.span_lint(missing_doc, sp, msg); diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index 14764e7bc37..297b454bd83 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -872,7 +872,7 @@ impl mem_categorization_ctxt { } }; - for subpats.eachi |i, &subpat| { + for subpats.iter().enumerate().advance |(i, &subpat)| { let subpat_ty = self.pat_ty(subpat); // see (*) let subcmt = @@ -885,7 +885,7 @@ impl mem_categorization_ctxt { } Some(&ast::def_fn(*)) | Some(&ast::def_struct(*)) => { - for subpats.eachi |i, &subpat| { + for subpats.iter().enumerate().advance |(i, &subpat)| { let subpat_ty = self.pat_ty(subpat); // see (*) let cmt_field = self.cat_imm_interior( @@ -926,7 +926,7 @@ impl mem_categorization_ctxt { ast::pat_tup(ref subpats) => { // (p1, ..., pN) - for subpats.eachi |i, &subpat| { + for subpats.iter().enumerate().advance |(i, &subpat)| { let subpat_ty = self.pat_ty(subpat); // see (*) let subcmt = self.cat_imm_interior( diff --git a/src/librustc/middle/moves.rs b/src/librustc/middle/moves.rs index 2217e632d14..8a29a026dc2 100644 --- a/src/librustc/middle/moves.rs +++ b/src/librustc/middle/moves.rs @@ -370,8 +370,8 @@ impl VisitContext { // any fields which (1) were not explicitly // specified and (2) have a type that // moves-by-default: - let consume_with = with_fields.any(|tf| { - !fields.any(|f| f.node.ident == tf.ident) && + let consume_with = with_fields.iter().any_(|tf| { + !fields.iter().any_(|f| f.node.ident == tf.ident) && ty::type_moves_by_default(self.tcx, tf.mt.ty) }); diff --git a/src/librustc/middle/privacy.rs b/src/librustc/middle/privacy.rs index 60193f3fe5d..5cfe44e1554 100644 --- a/src/librustc/middle/privacy.rs +++ b/src/librustc/middle/privacy.rs @@ -252,7 +252,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, method_id.node); if is_private && (container_id.crate != local_crate || - !privileged_items.contains(&(container_id.node))) { + !privileged_items.iter().any_(|x| x == &(container_id.node))) { tcx.sess.span_err(span, fmt!("method `%s` is private", token::ident_to_str(name))); @@ -280,7 +280,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, def_fn(def_id, _) => { if def_id.crate == local_crate { if local_item_is_private(span, def_id.node) && - !privileged_items.contains(&def_id.node) { + !privileged_items.iter().any_(|x| x == &def_id.node) { tcx.sess.span_err(span, fmt!("function `%s` is private", token::ident_to_str(path.idents.last()))); @@ -324,8 +324,8 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, match (*methods)[method_num] { provided(method) if method.vis == private && - !privileged_items - .contains(&(trait_id.node)) => { + !privileged_items.iter() + .any_(|x| x == &(trait_id.node)) => { tcx.sess.span_err(span, fmt!("method `%s` is private", token::ident_to_str(&method @@ -409,7 +409,8 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, match ty::get(ty::type_autoderef(tcx, ty::expr_ty(tcx, base))).sty { ty_struct(id, _) - if id.crate != local_crate || !privileged_items.contains(&(id.node)) => { + if id.crate != local_crate || !privileged_items.iter() + .any_(|x| x == &(id.node)) => { debug!("(privacy checking) checking field access"); check_field(expr.span, id, ident); } @@ -422,7 +423,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, base))).sty { ty_struct(id, _) if id.crate != local_crate || - !privileged_items.contains(&(id.node)) => { + !privileged_items.iter().any_(|x| x == &(id.node)) => { match method_map.find(&expr.id) { None => { tcx.sess.span_bug(expr.span, @@ -448,7 +449,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, match ty::get(ty::expr_ty(tcx, expr)).sty { ty_struct(id, _) => { if id.crate != local_crate || - !privileged_items.contains(&(id.node)) { + !privileged_items.iter().any_(|x| x == &(id.node)) { for (*fields).each |field| { debug!("(privacy checking) checking \ field in struct literal"); @@ -459,7 +460,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, } ty_enum(id, _) => { if id.crate != local_crate || - !privileged_items.contains(&(id.node)) { + !privileged_items.iter().any_(|x| x == &(id.node)) { match tcx.def_map.get_copy(&expr.id) { def_variant(_, variant_id) => { for (*fields).each |field| { @@ -496,7 +497,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, match ty::get(ty::expr_ty(tcx, operand)).sty { ty_enum(id, _) => { if id.crate != local_crate || - !privileged_items.contains(&(id.node)) { + !privileged_items.iter().any_(|x| x == &(id.node)) { check_variant(expr.span, id); } } @@ -514,7 +515,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, match ty::get(ty::pat_ty(tcx, pattern)).sty { ty_struct(id, _) => { if id.crate != local_crate || - !privileged_items.contains(&(id.node)) { + !privileged_items.iter().any_(|x| x == &(id.node)) { for fields.each |field| { debug!("(privacy checking) checking \ struct pattern"); @@ -525,8 +526,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, } ty_enum(enum_id, _) => { if enum_id.crate != local_crate || - !privileged_items.contains( - &enum_id.node) { + !privileged_items.iter().any_(|x| x == &enum_id.node) { match tcx.def_map.find(&pattern.id) { Some(&def_variant(_, variant_id)) => { for fields.each |field| { diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs index f8d0b19922e..eef43574c14 100644 --- a/src/librustc/middle/region.rs +++ b/src/librustc/middle/region.rs @@ -78,7 +78,7 @@ impl RegionMaps { pub fn relate_free_regions(&mut self, sub: FreeRegion, sup: FreeRegion) { match self.free_region_map.find_mut(&sub) { Some(sups) => { - if !sups.contains(&sup) { + if !sups.iter().any_(|x| x == &sup) { sups.push(sup); } return; @@ -202,7 +202,7 @@ impl RegionMaps { return true; } - if !queue.contains(parent) { + if !queue.iter().any_(|x| x == parent) { queue.push(*parent); } } @@ -632,7 +632,7 @@ impl DetermineRpCtxt { ambient_variance: self.ambient_variance, id: self.item_id }; - if !vec.contains(&dep) { vec.push(dep); } + if !vec.iter().any_(|x| x == &dep) { vec.push(dep); } } // Determines whether a reference to a region that appears in the diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 3e656b3e594..0248a5f43cc 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -1463,7 +1463,7 @@ impl Resolver { let path_len = full_path.idents.len(); assert!(path_len != 0); - for full_path.idents.eachi |i, ident| { + for full_path.idents.iter().enumerate().advance |(i, ident)| { if i != path_len - 1 { module_path.push(*ident); } @@ -4033,7 +4033,7 @@ impl Resolver { pub fn check_consistent_bindings(@mut self, arm: &arm) { if arm.pats.len() == 0 { return; } let map_0 = self.binding_mode_map(arm.pats[0]); - for arm.pats.eachi() |i, p| { + for arm.pats.iter().enumerate().advance |(i, p)| { let map_i = self.binding_mode_map(*p); for map_0.each |&key, &binding_0| { @@ -4605,7 +4605,7 @@ impl Resolver { pub fn intern_module_part_of_path(@mut self, path: @Path) -> ~[ident] { let mut module_path_idents = ~[]; - for path.idents.eachi |index, ident| { + for path.idents.iter().enumerate().advance |(index, ident)| { if index == path.idents.len() - 1 { break; } @@ -4843,8 +4843,7 @@ impl Resolver { } let mut smallest = 0; - for maybes.eachi |i, &other| { - + for maybes.iter().enumerate().advance |(i, &other)| { values[i] = name.lev_distance(other); if values[i] <= values[smallest] { diff --git a/src/librustc/middle/trans/_match.rs b/src/librustc/middle/trans/_match.rs index 029063b8c0d..945f94a0877 100644 --- a/src/librustc/middle/trans/_match.rs +++ b/src/librustc/middle/trans/_match.rs @@ -388,7 +388,7 @@ pub fn expand_nested_bindings<'r>(bcx: block, match br.pats[col].node { ast::pat_ident(_, path, Some(inner)) => { let pats = vec::append( - vec::slice(br.pats, 0u, col).to_vec(), + vec::slice(br.pats, 0u, col).to_owned(), vec::append(~[inner], vec::slice(br.pats, col + 1u, br.pats.len()))); @@ -581,8 +581,7 @@ pub fn enter_opt<'r>(bcx: block, let mut reordered_patterns = ~[]; for ty::lookup_struct_fields(tcx, struct_id).each |field| { - match field_pats.find(|p| - p.ident == field.ident) { + match field_pats.iter().find_(|p| p.ident == field.ident) { None => reordered_patterns.push(dummy), Some(fp) => reordered_patterns.push(fp.pat) } @@ -642,7 +641,7 @@ pub fn enter_rec_or_struct<'r>(bcx: block, ast::pat_struct(_, ref fpats, _) => { let mut pats = ~[]; for fields.each |fname| { - match fpats.find(|p| p.ident == *fname) { + match fpats.iter().find_(|p| p.ident == *fname) { None => pats.push(dummy), Some(pat) => pats.push(pat.pat) } @@ -1308,11 +1307,11 @@ pub fn compile_submatch(bcx: block, if has_nested_bindings(m, col) { expand_nested_bindings(bcx, m, col, val) } else { - m.to_vec() + m.to_owned() } }; - let vals_left = vec::append(vec::slice(vals, 0u, col).to_vec(), + let vals_left = vec::append(vec::slice(vals, 0u, col).to_owned(), vec::slice(vals, col + 1u, vals.len())); let ccx = bcx.fcx.ccx; let mut pat_id = 0; @@ -1808,7 +1807,7 @@ pub fn bind_irrefutable_pat(bcx: block, vinfo.disr_val, val); for sub_pats.iter().advance |sub_pat| { - for args.vals.eachi |i, argval| { + for args.vals.iter().enumerate().advance |(i, argval)| { bcx = bind_irrefutable_pat(bcx, sub_pat[i], *argval, @@ -1826,7 +1825,7 @@ pub fn bind_irrefutable_pat(bcx: block, Some(ref elems) => { // This is the tuple struct case. let repr = adt::represent_node(bcx, pat.id); - for elems.eachi |i, elem| { + for elems.iter().enumerate().advance |(i, elem)| { let fldptr = adt::trans_field_ptr(bcx, repr, val, 0, i); bcx = bind_irrefutable_pat(bcx, @@ -1865,7 +1864,7 @@ pub fn bind_irrefutable_pat(bcx: block, } ast::pat_tup(ref elems) => { let repr = adt::represent_node(bcx, pat.id); - for elems.eachi |i, elem| { + for elems.iter().enumerate().advance |(i, elem)| { let fldptr = adt::trans_field_ptr(bcx, repr, val, 0, i); bcx = bind_irrefutable_pat(bcx, *elem, diff --git a/src/librustc/middle/trans/adt.rs b/src/librustc/middle/trans/adt.rs index 0976407b0bd..79b5aba227c 100644 --- a/src/librustc/middle/trans/adt.rs +++ b/src/librustc/middle/trans/adt.rs @@ -145,7 +145,7 @@ fn represent_type_uncached(cx: &mut CrateContext, t: ty::t) -> Repr { mk_struct(cx, self.tys, false).size == 0 } fn find_ptr(&self) -> Option<uint> { - self.tys.position(|&ty| mono_data_classify(ty) == MonoNonNull) + self.tys.iter().position_(|&ty| mono_data_classify(ty) == MonoNonNull) } } @@ -161,7 +161,7 @@ fn represent_type_uncached(cx: &mut CrateContext, t: ty::t) -> Repr { return Univariant(mk_struct(cx, [], false), false); } - if cases.all(|c| c.tys.len() == 0) { + if cases.iter().all(|c| c.tys.len() == 0) { // All bodies empty -> intlike let discrs = cases.map(|c| c.discr); return CEnum(*discrs.iter().min().unwrap(), *discrs.iter().max().unwrap()); @@ -545,7 +545,7 @@ fn build_const_struct(ccx: &mut CrateContext, st: &Struct, vals: &[ValueRef]) let mut offset = 0; let mut cfields = ~[]; - for st.fields.eachi |i, &ty| { + for st.fields.iter().enumerate().advance |(i, &ty)| { let llty = type_of::sizing_type_of(ccx, ty); let type_align = machine::llalign_of_min(ccx, llty) /*bad*/as u64; diff --git a/src/librustc/middle/trans/asm.rs b/src/librustc/middle/trans/asm.rs index d73d57efbbf..3814ff319f2 100644 --- a/src/librustc/middle/trans/asm.rs +++ b/src/librustc/middle/trans/asm.rs @@ -133,7 +133,7 @@ pub fn trans_inline_asm(bcx: block, ia: &ast::inline_asm) -> block { let op = PointerCast(bcx, aoutputs[0], T_ptr(val_ty(outputs[0]))); Store(bcx, r, op); } else { - for aoutputs.eachi |i, o| { + for aoutputs.iter().enumerate().advance |(i, o)| { let v = ExtractValue(bcx, r, i); let op = PointerCast(bcx, *o, T_ptr(val_ty(outputs[i]))); Store(bcx, v, op); diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index d7d21707f40..e96a4e1b5ad 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -670,7 +670,7 @@ pub fn iter_structural_ty(cx: block, av: ValueRef, t: ty::t, let tcx = cx.tcx(); let mut cx = cx; - for variant.args.eachi |i, &arg| { + for variant.args.iter().enumerate().advance |(i, &arg)| { cx = f(cx, adt::trans_field_ptr(cx, repr, av, variant.disr_val, i), ty::subst_tps(tcx, tps, None, arg)); @@ -683,7 +683,7 @@ pub fn iter_structural_ty(cx: block, av: ValueRef, t: ty::t, ty::ty_struct(*) => { let repr = adt::represent_type(cx.ccx(), t); do expr::with_field_tys(cx.tcx(), t, None) |discr, field_tys| { - for field_tys.eachi |i, field_ty| { + for field_tys.iter().enumerate().advance |(i, field_ty)| { let llfld_a = adt::trans_field_ptr(cx, repr, av, discr, i); cx = f(cx, llfld_a, field_ty.mt.ty); } @@ -696,7 +696,7 @@ pub fn iter_structural_ty(cx: block, av: ValueRef, t: ty::t, } ty::ty_tup(ref args) => { let repr = adt::represent_type(cx.ccx(), t); - for args.eachi |i, arg| { + for args.iter().enumerate().advance |(i, arg)| { let llfld_a = adt::trans_field_ptr(cx, repr, av, 0, i); cx = f(cx, llfld_a, *arg); } @@ -2017,7 +2017,7 @@ pub fn trans_enum_variant(ccx: @mut CrateContext, repr, ty_to_str(ccx.tcx, enum_ty)); adt::trans_start_init(bcx, repr, fcx.llretptr.get(), disr); - for args.eachi |i, va| { + for args.iter().enumerate().advance |(i, va)| { let lldestptr = adt::trans_field_ptr(bcx, repr, fcx.llretptr.get(), @@ -2092,7 +2092,7 @@ pub fn trans_tuple_struct(ccx: @mut CrateContext, let repr = adt::represent_type(ccx, tup_ty); adt::trans_start_init(bcx, repr, fcx.llretptr.get(), 0); - for fields.eachi |i, field| { + for fields.iter().enumerate().advance |(i, field)| { let lldestptr = adt::trans_field_ptr(bcx, repr, fcx.llretptr.get(), diff --git a/src/librustc/middle/trans/cabi.rs b/src/librustc/middle/trans/cabi.rs index acc3293f267..891eb0b1f1c 100644 --- a/src/librustc/middle/trans/cabi.rs +++ b/src/librustc/middle/trans/cabi.rs @@ -43,7 +43,7 @@ impl FnType { let fnty = T_fn(atys, rty); let llfn = decl(fnty); - for vec::eachi(self.attrs) |i, a| { + for self.attrs.iter().enumerate().advance |(i, a)| { match *a { option::Some(attr) => { unsafe { @@ -100,7 +100,7 @@ impl FnType { ret_def: bool, llargbundle: ValueRef, llretval: ValueRef) { - for vec::eachi(self.attrs) |i, a| { + for self.attrs.iter().enumerate().advance |(i, a)| { match *a { option::Some(attr) => { unsafe { diff --git a/src/librustc/middle/trans/callee.rs b/src/librustc/middle/trans/callee.rs index 7fab21b4156..6c39578e689 100644 --- a/src/librustc/middle/trans/callee.rs +++ b/src/librustc/middle/trans/callee.rs @@ -226,7 +226,7 @@ pub fn trans_fn_ref_with_vtables( type_params.repr(bcx.tcx()), vtables.repr(bcx.tcx())); - assert!(type_params.all(|t| !ty::type_needs_infer(*t))); + assert!(type_params.iter().all(|t| !ty::type_needs_infer(*t))); // Polytype of the function item (may have type params) let fn_tpt = ty::lookup_item_type(tcx, def_id); @@ -681,7 +681,7 @@ pub fn trans_args(cx: block, match args { ArgExprs(arg_exprs) => { let last = arg_exprs.len() - 1u; - for arg_exprs.eachi |i, arg_expr| { + for arg_exprs.iter().enumerate().advance |(i, arg_expr)| { let arg_val = unpack_result!(bcx, { trans_arg_expr(bcx, arg_tys[i], diff --git a/src/librustc/middle/trans/closure.rs b/src/librustc/middle/trans/closure.rs index c368ab5c9bd..8bc3889eb11 100644 --- a/src/librustc/middle/trans/closure.rs +++ b/src/librustc/middle/trans/closure.rs @@ -225,7 +225,7 @@ pub fn store_environment(bcx: block, // Copy expr values into boxed bindings. let mut bcx = bcx; - for vec::eachi(bound_values) |i, bv| { + for bound_values.iter().enumerate().advance |(i, bv)| { debug!("Copy %s into closure", bv.to_str(ccx)); if ccx.sess.asm_comments() { diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs index ff98e5a177f..e9a0d42f29b 100644 --- a/src/librustc/middle/trans/common.rs +++ b/src/librustc/middle/trans/common.rs @@ -468,15 +468,14 @@ pub fn add_clean_free(cx: block, ptr: ValueRef, heap: heap) { pub fn revoke_clean(cx: block, val: ValueRef) { do in_scope_cx(cx) |scope_info| { let scope_info = &mut *scope_info; // FIXME(#5074) workaround borrowck - let cleanup_pos = vec::position( - scope_info.cleanups, + let cleanup_pos = scope_info.cleanups.iter().position_( |cu| match *cu { clean_temp(v, _, _) if v == val => true, _ => false }); for cleanup_pos.iter().advance |i| { scope_info.cleanups = - vec::append(vec::slice(scope_info.cleanups, 0u, *i).to_vec(), + vec::append(vec::slice(scope_info.cleanups, 0u, *i).to_owned(), vec::slice(scope_info.cleanups, *i + 1u, scope_info.cleanups.len())); @@ -1397,7 +1396,7 @@ pub fn node_id_type_params(bcx: block, id: ast::node_id) -> ~[ty::t] { let tcx = bcx.tcx(); let params = ty::node_id_to_type_params(tcx, id); - if !params.all(|t| !ty::type_needs_infer(*t)) { + if !params.iter().all(|t| !ty::type_needs_infer(*t)) { bcx.sess().bug( fmt!("Type parameters for node %d include inference types: %s", id, params.map(|t| bcx.ty_to_str(*t)).connect(","))); diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index f6b1ba0ffe4..dcdb53ec532 100644 --- a/src/librustc/middle/trans/consts.rs +++ b/src/librustc/middle/trans/consts.rs @@ -91,7 +91,7 @@ pub fn const_vec(cx: @mut CrateContext, e: @ast::expr, es: &[@ast::expr]) let sz = llvm::LLVMConstMul(C_uint(cx, es.len()), unit_sz); let vs = es.map(|e| const_expr(cx, *e)); // If the vector contains enums, an LLVM array won't work. - let v = if vs.any(|vi| val_ty(*vi) != llunitty) { + let v = if vs.iter().any_(|vi| val_ty(*vi) != llunitty) { C_struct(vs) } else { C_array(llunitty, vs) @@ -487,8 +487,8 @@ fn const_expr_unadjusted(cx: @mut CrateContext, e: @ast::expr) -> ValueRef { do expr::with_field_tys(tcx, ety, Some(e.id)) |discr, field_tys| { let cs = field_tys.map(|field_ty| { - match fs.find(|f| field_ty.ident == f.node.ident) { - Some(ref f) => const_expr(cx, (*f).node.expr), + match fs.iter().find_(|f| field_ty.ident == f.node.ident) { + Some(f) => const_expr(cx, (*f).node.expr), None => { cx.tcx.sess.span_bug(e.span, "missing struct field"); } diff --git a/src/librustc/middle/trans/expr.rs b/src/librustc/middle/trans/expr.rs index cbe20afe919..d1467edd94d 100644 --- a/src/librustc/middle/trans/expr.rs +++ b/src/librustc/middle/trans/expr.rs @@ -1152,8 +1152,7 @@ fn trans_rec_or_struct(bcx: block, let mut need_base = vec::from_elem(field_tys.len(), true); let numbered_fields = do fields.map |field| { - let opt_pos = vec::position(field_tys, |field_ty| - field_ty.ident == field.node.ident); + let opt_pos = field_tys.iter().position_(|field_ty| field_ty.ident == field.node.ident); match opt_pos { Some(i) => { need_base[i] = false; @@ -1168,7 +1167,7 @@ fn trans_rec_or_struct(bcx: block, let optbase = match base { Some(base_expr) => { let mut leftovers = ~[]; - for need_base.eachi |i, b| { + for need_base.iter().enumerate().advance |(i, b)| { if *b { leftovers.push((i, field_tys[i].mt.ty)) } @@ -1177,7 +1176,7 @@ fn trans_rec_or_struct(bcx: block, fields: leftovers }) } None => { - if need_base.any(|b| *b) { + if need_base.iter().any_(|b| *b) { tcx.sess.span_bug(expr_span, "missing fields and no base expr") } None diff --git a/src/librustc/middle/trans/glue.rs b/src/librustc/middle/trans/glue.rs index 05461c93631..0ea63dde972 100644 --- a/src/librustc/middle/trans/glue.rs +++ b/src/librustc/middle/trans/glue.rs @@ -462,7 +462,7 @@ pub fn trans_struct_drop(bcx: block, // Drop the fields let field_tys = ty::struct_fields(bcx.tcx(), class_did, substs); - for vec::eachi(field_tys) |i, fld| { + for field_tys.iter().enumerate().advance |(i, fld)| { let llfld_a = adt::trans_field_ptr(bcx, repr, v0, 0, i); bcx = drop_ty(bcx, llfld_a, fld.mt.ty); } diff --git a/src/librustc/middle/trans/meth.rs b/src/librustc/middle/trans/meth.rs index bd79cb1cfeb..8b327c196e6 100644 --- a/src/librustc/middle/trans/meth.rs +++ b/src/librustc/middle/trans/meth.rs @@ -345,7 +345,7 @@ pub fn trans_static_method_callee(bcx: block, match vtbls[bound_index] { typeck::vtable_static(impl_did, ref rcvr_substs, rcvr_origins) => { - assert!(rcvr_substs.all(|t| !ty::type_needs_infer(*t))); + assert!(rcvr_substs.iter().all(|t| !ty::type_needs_infer(*t))); let mth_id = method_with_name_or_default(bcx.ccx(), impl_did, @@ -375,7 +375,7 @@ pub fn trans_static_method_callee(bcx: block, pub fn method_from_methods(ms: &[@ast::method], name: ast::ident) -> Option<ast::def_id> { - ms.find(|m| m.ident == name).map(|m| ast_util::local_def(m.id)) + ms.iter().find_(|m| m.ident == name).map(|m| ast_util::local_def(m.id)) } pub fn method_with_name_or_default(ccx: @mut CrateContext, @@ -512,7 +512,7 @@ pub fn combine_impl_and_methods_tps(bcx: block, let node_substs = node_id_type_params(bcx, callee_id); debug!("rcvr_substs=%?", rcvr_substs.map(|t| bcx.ty_to_str(*t))); let ty_substs - = vec::append(rcvr_substs.to_vec(), + = vec::append(rcvr_substs.to_owned(), vec::tailn(node_substs, node_substs.len() - n_m_tps)); debug!("n_m_tps=%?", n_m_tps); diff --git a/src/librustc/middle/trans/monomorphize.rs b/src/librustc/middle/trans/monomorphize.rs index df283194713..f082150e394 100644 --- a/src/librustc/middle/trans/monomorphize.rs +++ b/src/librustc/middle/trans/monomorphize.rs @@ -60,7 +60,7 @@ pub fn monomorphic_fn(ccx: @mut CrateContext, impl_did_opt.repr(ccx.tcx), ref_id); - assert!(real_substs.tps.all(|t| !ty::type_needs_infer(*t))); + assert!(real_substs.tps.iter().all(|t| !ty::type_needs_infer(*t))); let _icx = ccx.insn_ctxt("monomorphic_fn"); let mut must_cast = false; let substs = vec::map(real_substs.tps, |t| { @@ -209,7 +209,7 @@ pub fn monomorphic_fn(ccx: @mut CrateContext, } ast_map::node_variant(ref v, enum_item, _) => { let tvs = ty::enum_variants(ccx.tcx, local_def(enum_item.id)); - let this_tv = vec::find(*tvs, |tv| { tv.id.node == fn_id.node}).get(); + let this_tv = *tvs.iter().find_(|tv| { tv.id.node == fn_id.node}).get(); let d = mk_lldecl(); set_inline_hint(d); match v.node.kind { diff --git a/src/librustc/middle/trans/reflect.rs b/src/librustc/middle/trans/reflect.rs index e4924e3a8db..16a6d62f176 100644 --- a/src/librustc/middle/trans/reflect.rs +++ b/src/librustc/middle/trans/reflect.rs @@ -95,7 +95,7 @@ impl Reflector { let v = self.visitor_val; debug!("passing %u args:", args.len()); let bcx = self.bcx; - for args.eachi |i, a| { + for args.iter().enumerate().advance |(i, a)| { debug!("arg %u: %s", i, val_str(bcx.ccx().tn, *a)); } let bool_ty = ty::mk_bool(); @@ -207,7 +207,7 @@ impl Reflector { let extra = ~[self.c_uint(tys.len())] + self.c_size_and_align(t); do self.bracketed(~"tup", extra) |this| { - for tys.eachi |i, t| { + for tys.iter().enumerate().advance |(i, t)| { let extra = ~[this.c_uint(i), this.c_tydesc(*t)]; this.visit(~"tup_field", extra); } @@ -252,7 +252,7 @@ impl Reflector { let extra = ~[self.c_uint(fields.len())] + self.c_size_and_align(t); do self.bracketed(~"class", extra) |this| { - for fields.eachi |i, field| { + for fields.iter().enumerate().advance |(i, field)| { let extra = ~[this.c_uint(i), this.c_slice( bcx.ccx().sess.str_of(field.ident))] @@ -310,14 +310,14 @@ impl Reflector { let enum_args = ~[self.c_uint(variants.len()), make_get_disr()] + self.c_size_and_align(t); do self.bracketed(~"enum", enum_args) |this| { - for variants.eachi |i, v| { + for variants.iter().enumerate().advance |(i, v)| { let name = ccx.sess.str_of(v.name); let variant_args = ~[this.c_uint(i), this.c_int(v.disr_val), this.c_uint(v.args.len()), this.c_slice(name)]; do this.bracketed(~"enum_variant", variant_args) |this| { - for v.args.eachi |j, a| { + for v.args.iter().enumerate().advance |(j, a)| { let bcx = this.bcx; let null = C_null(llptrty); let ptr = adt::trans_field_ptr(bcx, repr, null, v.disr_val, j); @@ -352,7 +352,7 @@ impl Reflector { } pub fn visit_sig(&mut self, retval: uint, sig: &ty::FnSig) { - for sig.inputs.eachi |i, arg| { + for sig.inputs.iter().enumerate().advance |(i, arg)| { let modeval = 5u; // "by copy" let extra = ~[self.c_uint(i), self.c_uint(modeval), diff --git a/src/librustc/middle/trans/tvec.rs b/src/librustc/middle/trans/tvec.rs index 11a4e82050d..09905a76187 100644 --- a/src/librustc/middle/trans/tvec.rs +++ b/src/librustc/middle/trans/tvec.rs @@ -386,7 +386,7 @@ pub fn write_content(bcx: block, SaveIn(lldest) => { let mut temp_cleanups = ~[]; - for elements.eachi |i, element| { + for elements.iter().enumerate().advance |(i, element)| { let lleltptr = GEPi(bcx, lldest, [i]); debug!("writing index %? with lleltptr=%?", i, bcx.val_str(lleltptr)); diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 4fc431e0a54..8595adcd1c7 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -2116,7 +2116,7 @@ pub fn type_contents(cx: ctxt, ty: t) -> TypeContents { ty_struct(did, ref substs) => { let flds = struct_fields(cx, did, substs); - let mut res = flds.foldl( + let mut res = flds.iter().fold( TC_NONE, |tc, f| tc + tc_mt(cx, f.mt, cache)); if ty::has_dtor(cx, did) { @@ -2126,7 +2126,7 @@ pub fn type_contents(cx: ctxt, ty: t) -> TypeContents { } ty_tup(ref tys) => { - tys.foldl(TC_NONE, |tc, ty| *tc + tc_ty(cx, *ty, cache)) + tys.iter().fold(TC_NONE, |tc, ty| tc + tc_ty(cx, *ty, cache)) } ty_enum(did, ref substs) => { @@ -2136,10 +2136,9 @@ pub fn type_contents(cx: ctxt, ty: t) -> TypeContents { // are non-copyable TC_EMPTY_ENUM } else { - variants.foldl(TC_NONE, |tc, variant| { - variant.args.foldl( - *tc, - |tc, arg_ty| *tc + tc_ty(cx, *arg_ty, cache)) + variants.iter().fold(TC_NONE, |tc, variant| { + variant.args.iter().fold(tc, + |tc, arg_ty| tc + tc_ty(cx, *arg_ty, cache)) }) }; apply_tc_attr(cx, did, res) @@ -2365,7 +2364,7 @@ pub fn is_instantiable(cx: ctxt, r_ty: t) -> bool { } ty_tup(ref ts) => { - ts.any(|t| type_requires(cx, seen, r_ty, *t)) + ts.iter().any_(|t| type_requires(cx, seen, r_ty, *t)) } ty_enum(ref did, _) if vec::contains(*seen, did) => { @@ -3373,7 +3372,7 @@ pub fn field_idx_strict(tcx: ty::ctxt, id: ast::ident, fields: &[field]) } pub fn method_idx(id: ast::ident, meths: &[@Method]) -> Option<uint> { - vec::position(meths, |m| m.ident == id) + meths.iter().position_(|m| m.ident == id) } /// Returns a vector containing the indices of all type parameters that appear @@ -4129,9 +4128,10 @@ pub fn lookup_struct_field(cx: ctxt, parent: ast::def_id, field_id: ast::def_id) -> field_ty { - match vec::find(lookup_struct_fields(cx, parent), + let r = lookup_struct_fields(cx, parent); + match r.iter().find_( |f| f.id.node == field_id.node) { - Some(t) => t, + Some(t) => *t, None => cx.sess.bug("struct ID not found in parent's fields") } } diff --git a/src/librustc/middle/typeck/astconv.rs b/src/librustc/middle/typeck/astconv.rs index 4b5f416cdd1..660ff83b5b3 100644 --- a/src/librustc/middle/typeck/astconv.rs +++ b/src/librustc/middle/typeck/astconv.rs @@ -534,7 +534,7 @@ pub fn bound_lifetimes<AC:AstConv>( let special_idents = [special_idents::statik, special_idents::self_]; let mut bound_lifetime_names = opt_vec::Empty; ast_lifetimes.map_to_vec(|ast_lifetime| { - if special_idents.any(|&i| i == ast_lifetime.ident) { + if special_idents.iter().any_(|&i| i == ast_lifetime.ident) { this.tcx().sess.span_err( ast_lifetime.span, fmt!("illegal lifetime parameter name: `%s`", diff --git a/src/librustc/middle/typeck/check/_match.rs b/src/librustc/middle/typeck/check/_match.rs index 97e933496c8..3a661f74239 100644 --- a/src/librustc/middle/typeck/check/_match.rs +++ b/src/librustc/middle/typeck/check/_match.rs @@ -274,7 +274,7 @@ pub fn check_struct_pat_fields(pcx: &pat_ctxt, // Index the class fields. let mut field_map = HashMap::new(); - for class_fields.eachi |i, class_field| { + for class_fields.iter().enumerate().advance |(i, class_field)| { field_map.insert(class_field.ident, i); } @@ -303,7 +303,7 @@ pub fn check_struct_pat_fields(pcx: &pat_ctxt, // Report an error if not all the fields were specified. if !etc { - for class_fields.eachi |i, field| { + for class_fields.iter().enumerate().advance |(i, field)| { if found_fields.contains(&i) { loop; } @@ -510,7 +510,7 @@ pub fn check_pat(pcx: &pat_ctxt, pat: @ast::pat, expected: ty::t) { let e_count = elts.len(); match s { ty::ty_tup(ref ex_elts) if e_count == ex_elts.len() => { - for elts.eachi |i, elt| { + for elts.iter().enumerate().advance |(i, elt)| { check_pat(pcx, *elt, ex_elts[i]); } fcx.write_ty(pat.id, expected); diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 7fc1728a720..7e66c99c4fe 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -254,7 +254,7 @@ impl<'self> LookupContext<'self> { ty_enum(did, _) => { // Watch out for newtype'd enums like "enum t = @T". // See discussion in typeck::check::do_autoderef(). - if enum_dids.contains(&did) { + if enum_dids.iter().any_(|x| x == &did) { return None; } enum_dids.push(did); @@ -376,7 +376,7 @@ impl<'self> LookupContext<'self> { let trait_methods = ty::trait_methods(tcx, bound_trait_ref.def_id); let pos = { - match trait_methods.position(|m| { + match trait_methods.iter().position_(|m| { m.explicit_self != ast::sty_static && m.ident == self.m_name }) { @@ -420,7 +420,7 @@ impl<'self> LookupContext<'self> { let tcx = self.tcx(); let ms = ty::trait_methods(tcx, did); - let index = match vec::position(*ms, |m| m.ident == self.m_name) { + let index = match ms.iter().position_(|m| m.ident == self.m_name) { Some(i) => i, None => { return; } // no method with the right name }; @@ -474,7 +474,7 @@ impl<'self> LookupContext<'self> { // First, try self methods let mut method_info: Option<MethodInfo> = None; let methods = ty::trait_methods(tcx, did); - match vec::position(*methods, |m| m.ident == self.m_name) { + match methods.iter().position_(|m| m.ident == self.m_name) { Some(i) => { method_info = Some(MethodInfo { method_ty: methods[i], @@ -489,8 +489,7 @@ impl<'self> LookupContext<'self> { for ty::trait_supertraits(tcx, did).each() |trait_ref| { let supertrait_methods = ty::trait_methods(tcx, trait_ref.def_id); - match vec::position(*supertrait_methods, - |m| m.ident == self.m_name) { + match supertrait_methods.iter().position_(|m| m.ident == self.m_name) { Some(i) => { method_info = Some(MethodInfo { method_ty: supertrait_methods[i], @@ -547,7 +546,7 @@ impl<'self> LookupContext<'self> { impl_info.methods.map(|m| m.ident).repr(self.tcx())); let idx = { - match impl_info.methods.position(|m| m.ident == self.m_name) { + match impl_info.methods.iter().position_(|m| m.ident == self.m_name) { Some(idx) => idx, None => { return; } // No method with the right name. } @@ -817,8 +816,9 @@ impl<'self> LookupContext<'self> { rcvr_ty: ty::t, candidates: &mut ~[Candidate]) -> Option<method_map_entry> { - let relevant_candidates = - candidates.filter_to_vec(|c| self.is_relevant(rcvr_ty, c)); + let relevant_candidates: ~[Candidate] = + candidates.iter().transform(|c| copy *c). + filter(|c| self.is_relevant(rcvr_ty, c)).collect(); let relevant_candidates = self.merge_candidates(relevant_candidates); @@ -946,7 +946,7 @@ impl<'self> LookupContext<'self> { parameters given for this method"); self.fcx.infcx().next_ty_vars(num_method_tps) } else { - self.supplied_tps.to_vec() + self.supplied_tps.to_owned() } }; diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index 12b413bc5af..13ded501679 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -1107,7 +1107,7 @@ pub fn lookup_field_ty(tcx: ty::ctxt, fieldname: ast::ident, substs: &ty::substs) -> Option<ty::t> { - let o_field = vec::find(items, |f| f.ident == fieldname); + let o_field = items.iter().find_(|f| f.ident == fieldname); do o_field.map() |f| { ty::lookup_field_type(tcx, class_id, f.id, substs) } @@ -1236,7 +1236,7 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, vtable::early_resolve_expr(callee_expr, fcx, true); } - for args.eachi |i, arg| { + for args.iter().enumerate().advance |(i, arg)| { let is_block = match arg.node { ast::expr_fn_block(*) | ast::expr_loop_body(*) | ast::expr_do_body(*) => true, @@ -2492,13 +2492,13 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, let discrim_ty = fcx.expr_ty(discrim); let arm_tys = arms.map(|a| fcx.node_ty(a.body.node.id)); if ty::type_is_error(discrim_ty) || - arm_tys.any(|t| ty::type_is_error(*t)) { + arm_tys.iter().any_(|t| ty::type_is_error(*t)) { fcx.write_error(id); } // keep in mind that `all` returns true in the empty vec case, // which is what we want else if ty::type_is_bot(discrim_ty) || - arm_tys.all(|t| ty::type_is_bot(*t)) { + arm_tys.iter().all(|t| ty::type_is_bot(*t)) { fcx.write_bot(id); } else { @@ -2561,8 +2561,8 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, ast::expr_call(f, ref args, sugar) => { check_call(fcx, expr.id, expr, f, *args, sugar); let f_ty = fcx.expr_ty(f); - let (args_bot, args_err) = args.foldl((false, false), - |&(rest_bot, rest_err), a| { + let (args_bot, args_err) = args.iter().fold((false, false), + |(rest_bot, rest_err), a| { // is this not working? let a_ty = fcx.expr_ty(*a); (rest_bot || ty::type_is_bot(a_ty), @@ -2578,8 +2578,8 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, check_method_call(fcx, callee_id, expr, rcvr, ident, *args, *tps, sugar); let f_ty = fcx.expr_ty(rcvr); let arg_tys = args.map(|a| fcx.expr_ty(*a)); - let (args_bot, args_err) = arg_tys.foldl((false, false), - |&(rest_bot, rest_err), a| { + let (args_bot, args_err) = arg_tys.iter().fold((false, false), + |(rest_bot, rest_err), a| { (rest_bot || ty::type_is_bot(*a), rest_err || ty::type_is_error(*a))}); if ty::type_is_error(f_ty) || args_err { @@ -3419,7 +3419,7 @@ pub fn check_bounds_are_used(ccx: @mut CrateCtxt, true }); - for tps_used.eachi |i, b| { + for tps_used.iter().enumerate().advance |(i, b)| { if !*b { ccx.tcx.sess.span_err( span, fmt!("type parameter `%s` is unused", diff --git a/src/librustc/middle/typeck/check/regionmanip.rs b/src/librustc/middle/typeck/check/regionmanip.rs index a5cfa629cf0..9db873a25b0 100644 --- a/src/librustc/middle/typeck/check/regionmanip.rs +++ b/src/librustc/middle/typeck/check/regionmanip.rs @@ -103,8 +103,8 @@ pub fn replace_bound_regions_in_fn_sig( } // For each type `ty` in `tys`... - do tys.foldl(isr) |isr, ty| { - let mut isr = *isr; + do tys.iter().fold(isr) |isr, ty| { + let mut isr = isr; // Using fold_regions is inefficient, because it // constructs new types, but it avoids code duplication in diff --git a/src/librustc/middle/typeck/check/vtable.rs b/src/librustc/middle/typeck/check/vtable.rs index 197bf5d82cc..e1b9ebf977f 100644 --- a/src/librustc/middle/typeck/check/vtable.rs +++ b/src/librustc/middle/typeck/check/vtable.rs @@ -68,7 +68,7 @@ impl VtableContext { } fn has_trait_bounds(type_param_defs: &[ty::TypeParameterDef]) -> bool { - type_param_defs.any( + type_param_defs.iter().any_( |type_param_def| !type_param_def.bounds.trait_bounds.is_empty()) } diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs index 56e9875d2ba..ef456e9a1f9 100644 --- a/src/librustc/middle/typeck/collect.rs +++ b/src/librustc/middle/typeck/collect.rs @@ -421,7 +421,7 @@ pub fn ensure_supertraits(ccx: &CrateCtxt, generics, self_ty); // FIXME(#5527) Could have same trait multiple times - if ty_trait_refs.any(|other_trait| other_trait.def_id == trait_ref.def_id) { + if ty_trait_refs.iter().any_(|other_trait| other_trait.def_id == trait_ref.def_id) { // This means a trait inherited from the same supertrait more // than once. tcx.sess.span_err(sp, "Duplicate supertrait in trait declaration"); @@ -515,7 +515,7 @@ pub fn compare_impl_method(tcx: ty::ctxt, return; } - for trait_m.generics.type_param_defs.eachi |i, trait_param_def| { + for trait_m.generics.type_param_defs.iter().enumerate().advance |(i, trait_param_def)| { // For each of the corresponding impl ty param's bounds... let impl_param_def = &impl_m.generics.type_param_defs[i]; @@ -687,11 +687,11 @@ pub fn check_methods_against_trait(ccx: &CrateCtxt, // we'll catch it in coherence let trait_ms = ty::trait_methods(tcx, trait_ref.def_id); for impl_ms.each |impl_m| { - match trait_ms.find(|trait_m| trait_m.ident == impl_m.mty.ident) { + match trait_ms.iter().find_(|trait_m| trait_m.ident == impl_m.mty.ident) { Some(trait_m) => { let num_impl_tps = generics.ty_params.len(); compare_impl_method( - ccx.tcx, num_impl_tps, impl_m, trait_m, + ccx.tcx, num_impl_tps, impl_m, *trait_m, &trait_ref.substs, selfty); } None => { diff --git a/src/librustc/middle/typeck/infer/combine.rs b/src/librustc/middle/typeck/infer/combine.rs index 76681674892..773860ffc64 100644 --- a/src/librustc/middle/typeck/infer/combine.rs +++ b/src/librustc/middle/typeck/infer/combine.rs @@ -265,7 +265,7 @@ pub fn super_tps<C:Combine>( if vec::same_length(as_, bs) { iter_vec2(as_, bs, |a, b| { eq_tys(this, *a, *b) - }).then(|| Ok(as_.to_vec()) ) + }).then(|| Ok(as_.to_owned()) ) } else { Err(ty::terr_ty_param_size( expected_found(this, as_.len(), bs.len()))) diff --git a/src/librustc/middle/typeck/infer/lattice.rs b/src/librustc/middle/typeck/infer/lattice.rs index 7a3230079ee..658fd67ee58 100644 --- a/src/librustc/middle/typeck/infer/lattice.rs +++ b/src/librustc/middle/typeck/infer/lattice.rs @@ -503,7 +503,7 @@ pub fn var_ids<T:Combine>(this: &T, isr: isr_alist) -> ~[RegionVid] { pub fn is_var_in_set(new_vars: &[RegionVid], r: ty::Region) -> bool { match r { - ty::re_infer(ty::ReVar(ref v)) => new_vars.contains(v), + ty::re_infer(ty::ReVar(ref v)) => new_vars.iter().any_(|x| x == v), _ => false } } diff --git a/src/librustc/middle/typeck/infer/lub.rs b/src/librustc/middle/typeck/infer/lub.rs index 1a73d5bd36b..213af316549 100644 --- a/src/librustc/middle/typeck/infer/lub.rs +++ b/src/librustc/middle/typeck/infer/lub.rs @@ -175,7 +175,7 @@ impl Combine for Lub { // Variables created during LUB computation which are // *related* to regions that pre-date the LUB computation // stay as they are. - if !tainted.all(|r| is_var_in_set(new_vars, *r)) { + if !tainted.iter().all(|r| is_var_in_set(new_vars, *r)) { debug!("generalize_region(r0=%?): \ non-new-variables found in %?", r0, tainted); @@ -189,7 +189,7 @@ impl Combine for Lub { // with. for list::each(a_isr) |pair| { let (a_br, a_r) = *pair; - if tainted.contains(&a_r) { + if tainted.iter().any_(|x| x == &a_r) { debug!("generalize_region(r0=%?): \ replacing with %?, tainted=%?", r0, a_br, tainted); diff --git a/src/librustc/middle/typeck/infer/region_inference.rs b/src/librustc/middle/typeck/infer/region_inference.rs index 9d6176af0ba..529fc48ebdf 100644 --- a/src/librustc/middle/typeck/infer/region_inference.rs +++ b/src/librustc/middle/typeck/infer/region_inference.rs @@ -980,7 +980,7 @@ impl RegionVarBindings { { let mut result_set = result_set; if *r == *r1 { // Clearly, this is potentially inefficient. - if !result_set.contains(r2) { + if !result_set.iter().any_(|x| x == r2) { result_set.push(*r2); } } diff --git a/src/librustc/middle/typeck/infer/sub.rs b/src/librustc/middle/typeck/infer/sub.rs index 2578f7c8553..b0f055dc77d 100644 --- a/src/librustc/middle/typeck/infer/sub.rs +++ b/src/librustc/middle/typeck/infer/sub.rs @@ -203,7 +203,7 @@ impl Combine for Sub { // or new variables: match *tainted_region { ty::re_infer(ty::ReVar(ref vid)) => { - if new_vars.contains(vid) { loop; } + if new_vars.iter().any_(|x| x == vid) { loop; } } _ => { if *tainted_region == skol { loop; } diff --git a/src/librustc/middle/typeck/mod.rs b/src/librustc/middle/typeck/mod.rs index dc561f413c7..99fa745fa8b 100644 --- a/src/librustc/middle/typeck/mod.rs +++ b/src/librustc/middle/typeck/mod.rs @@ -198,7 +198,7 @@ pub fn write_substs_to_tcx(tcx: ty::ctxt, if substs.len() > 0u { debug!("write_substs_to_tcx(%d, %?)", node_id, substs.map(|t| ppaux::ty_to_str(tcx, *t))); - assert!(substs.all(|t| !ty::type_needs_infer(*t))); + assert!(substs.iter().all(|t| !ty::type_needs_infer(*t))); tcx.node_type_substs.insert(node_id, substs); } } diff --git a/src/librustc/rustc.rc b/src/librustc/rustc.rc index 021dd6648cb..52247d64cdc 100644 --- a/src/librustc/rustc.rc +++ b/src/librustc/rustc.rc @@ -216,7 +216,7 @@ pub fn run_compiler(args: &~[~str], demitter: diagnostic::Emitter) { let lint_flags = vec::append(getopts::opt_strs(matches, "W"), getopts::opt_strs(matches, "warn")); - let show_lint_options = lint_flags.contains(&~"help") || + let show_lint_options = lint_flags.iter().any_(|x| x == &~"help") || (opt_present(matches, "W") && lint_flags.is_empty()); if show_lint_options { @@ -224,7 +224,8 @@ pub fn run_compiler(args: &~[~str], demitter: diagnostic::Emitter) { return; } - if getopts::opt_strs(matches, "Z").contains(&~"help") { + let r = getopts::opt_strs(matches, "Z"); + if r.iter().any_(|x| x == &~"help") { describe_debug_flags(); return; } |
