Skip to content

Commit 8523f6d

Browse files
blake2-ppcemberian
blake2-ppc
authored andcommitted
rustc: Fix for-range loops that can use iterators
Transform range loops that can be regular iterator loops.
1 parent e7d4a9c commit 8523f6d

File tree

9 files changed

+21
-29
lines changed

9 files changed

+21
-29
lines changed

src/compiletest/runtest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -412,8 +412,8 @@ fn check_expected_errors(expected_errors: ~[errors::ExpectedError],
412412
}
413413
}
414414

415-
for i in range(0u, found_flags.len()) {
416-
if !found_flags[i] {
415+
for (i, &flag) in found_flags.iter().enumerate() {
416+
if !flag {
417417
let ee = &expected_errors[i];
418418
fatal_ProcRes(fmt!("expected %s on line %u not found: %s",
419419
ee.kind, ee.line, ee.msg), ProcRes);

src/librustc/middle/borrowck/check_loans.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,10 @@ impl<'self> CheckLoanCtxt<'self> {
159159
true
160160
};
161161

162-
for i in range(0u, new_loan_indices.len()) {
163-
let old_loan = &self.all_loans[new_loan_indices[i]];
164-
for j in range(i+1, new_loan_indices.len()) {
165-
let new_loan = &self.all_loans[new_loan_indices[j]];
162+
for (i, &x) in new_loan_indices.iter().enumerate() {
163+
let old_loan = &self.all_loans[x];
164+
for &y in new_loan_indices.slice_from(i+1).iter() {
165+
let new_loan = &self.all_loans[y];
166166
self.report_error_if_loans_conflict(old_loan, new_loan);
167167
}
168168
}

src/librustc/middle/dataflow.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -983,10 +983,10 @@ fn bitwise(out_vec: &mut [uint],
983983
op: &fn(uint, uint) -> uint) -> bool {
984984
assert_eq!(out_vec.len(), in_vec.len());
985985
let mut changed = false;
986-
for i in range(0u, out_vec.len()) {
987-
let old_val = out_vec[i];
988-
let new_val = op(old_val, in_vec[i]);
989-
out_vec[i] = new_val;
986+
for (out_elt, in_elt) in out_vec.mut_iter().zip(in_vec.iter()) {
987+
let old_val = *out_elt;
988+
let new_val = op(old_val, *in_elt);
989+
*out_elt = new_val;
990990
changed |= (old_val != new_val);
991991
}
992992
changed

src/librustc/middle/trans/base.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1742,8 +1742,7 @@ pub fn copy_args_to_allocas(fcx: @mut FunctionContext,
17421742
_ => {}
17431743
}
17441744

1745-
for arg_n in range(0u, arg_tys.len()) {
1746-
let arg_ty = arg_tys[arg_n];
1745+
for (arg_n, &arg_ty) in arg_tys.iter().enumerate() {
17471746
let raw_llarg = raw_llargs[arg_n];
17481747

17491748
// For certain mode/type combinations, the raw llarg values are passed

src/librustc/middle/trans/cabi_x86_64.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ fn classify_ty(ty: Type) -> ~[RegClass] {
145145
}
146146

147147
fn all_mem(cls: &mut [RegClass]) {
148-
for i in range(0u, cls.len()) {
149-
cls[i] = Memory;
148+
for elt in cls.mut_iter() {
149+
*elt = Memory;
150150
}
151151
}
152152

src/librustc/middle/trans/type_use.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,8 @@ pub fn type_uses_for(ccx: @mut CrateContext, fn_id: def_id, n_tps: uint)
206206

207207
pub fn type_needs(cx: &Context, use_: uint, ty: ty::t) {
208208
// Optimization -- don't descend type if all params already have this use
209-
let len = {
210-
let uses = &*cx.uses;
211-
uses.len()
212-
};
213-
for i in range(0u, len) {
214-
if cx.uses[i] & use_ != use_ {
215-
type_needs_inner(cx, use_, ty, @Nil);
216-
return;
217-
}
209+
if cx.uses.iter().any(|&elt| elt & use_ != use_) {
210+
type_needs_inner(cx, use_, ty, @Nil);
218211
}
219212
}
220213

src/librustc/middle/typeck/check/method.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -772,8 +772,8 @@ impl<'self> LookupContext<'self> {
772772
self.tcx().sess.span_err(
773773
self.expr.span,
774774
"multiple applicable methods in scope");
775-
for idx in range(0u, relevant_candidates.len()) {
776-
self.report_candidate(idx, &relevant_candidates[idx].origin);
775+
for (idx, candidate) in relevant_candidates.iter().enumerate() {
776+
self.report_candidate(idx, &candidate.origin);
777777
}
778778
}
779779

src/librustc/middle/typeck/coherence.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -554,8 +554,8 @@ impl CoherenceChecker {
554554

555555
let mut provided_names = HashSet::new();
556556
// Implemented methods
557-
for i in range(0u, all_methods.len()) {
558-
provided_names.insert(all_methods[i].ident);
557+
for elt in all_methods.iter() {
558+
provided_names.insert(elt.ident);
559559
}
560560

561561
let r = ty::trait_methods(tcx, trait_did);

src/librustc/middle/typeck/infer/region_inference/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,8 @@ impl RegionVarBindings {
374374
pub fn vars_created_since_snapshot(&mut self, snapshot: uint)
375375
-> ~[RegionVid] {
376376
do vec::build |push| {
377-
for i in range(snapshot, self.undo_log.len()) {
378-
match self.undo_log[i] {
377+
for &elt in self.undo_log.slice_from(snapshot).iter() {
378+
match elt {
379379
AddVar(vid) => push(vid),
380380
_ => ()
381381
}

0 commit comments

Comments
 (0)