diff --git a/src/libextra/arc.rs b/src/libextra/arc.rs index 5f00f1abae0eb..312dca516fdc6 100644 --- a/src/libextra/arc.rs +++ b/src/libextra/arc.rs @@ -23,7 +23,7 @@ * let numbers=vec::from_fn(100, |ind| (ind as float)*rand::random()); * let shared_numbers=arc::Arc::new(numbers); * - * do 10.times { + * for _ in range(0, 10u) { * let (port, chan) = stream(); * chan.send(shared_numbers.clone()); * @@ -759,7 +759,7 @@ mod tests { do task::spawn || { do arc2.write |num| { - do 10.times { + for _ in range(0, 10u) { let tmp = *num; *num = -1; task::yield(); @@ -771,7 +771,7 @@ mod tests { // Readers try to catch the writer in the act let mut children = ~[]; - do 5.times { + for _ in range(0, 5u) { let arc3 = (*arc).clone(); let mut builder = task::task(); builder.future_result(|r| children.push(r)); @@ -805,7 +805,7 @@ mod tests { // Reader tasks let mut reader_convos = ~[]; - do 10.times { + for _ in range(0, 10u) { let ((rp1,rc1),(rp2,rc2)) = (comm::stream(),comm::stream()); reader_convos.push((rc1, rp2)); let arcn = (*arc).clone(); @@ -913,7 +913,7 @@ mod tests { do read_mode.read |state| { // if writer mistakenly got in, make sure it mutates state // before we assert on it - do 5.times { task::yield(); } + for _ in range(0, 5u) { task::yield(); } // make sure writer didn't get in. assert!(*state); } @@ -925,6 +925,6 @@ mod tests { // helped to expose the race nearly 100% of the time... but adding // yields in the intuitively-right locations made it even less likely, // and I wasn't sure why :( . This is a mediocre "next best" option. - do 8.times { test_rw_write_cond_downgrade_read_race_helper() } + for _ in range(0, 8u) { test_rw_write_cond_downgrade_read_race_helper() } } } diff --git a/src/libextra/base64.rs b/src/libextra/base64.rs index b4431004bd74c..d1733b43d3616 100644 --- a/src/libextra/base64.rs +++ b/src/libextra/base64.rs @@ -314,9 +314,9 @@ mod test { use std::rand::{task_rng, random, RngUtil}; use std::vec; - do 1000.times { + for _ in range(0, 1000u) { let v: ~[u8] = do vec::build |push| { - do task_rng().gen_uint_range(1, 100).times { + for _ in range(0, task_rng().gen_uint_range(1, 100)) { push(random()); } }; diff --git a/src/libextra/crypto/cryptoutil.rs b/src/libextra/crypto/cryptoutil.rs index d4d43558110b1..b597c159ae99b 100644 --- a/src/libextra/crypto/cryptoutil.rs +++ b/src/libextra/crypto/cryptoutil.rs @@ -56,7 +56,7 @@ pub fn read_u64v_be(dst: &mut[u64], input: &[u8]) { unsafe { let mut x: *mut i64 = transmute(dst.unsafe_mut_ref(0)); let mut y: *i64 = transmute(input.unsafe_ref(0)); - do dst.len().times() { + for _ in range(0, dst.len()) { *x = to_be64(*y); x = x.offset(1); y = y.offset(1); @@ -72,7 +72,7 @@ pub fn read_u32v_be(dst: &mut[u32], input: &[u8]) { unsafe { let mut x: *mut i32 = transmute(dst.unsafe_mut_ref(0)); let mut y: *i32 = transmute(input.unsafe_ref(0)); - do dst.len().times() { + for _ in range(0, dst.len()) { *x = to_be32(*y); x = x.offset(1); y = y.offset(1); @@ -88,7 +88,7 @@ pub fn read_u32v_le(dst: &mut[u32], input: &[u8]) { unsafe { let mut x: *mut i32 = transmute(dst.unsafe_mut_ref(0)); let mut y: *i32 = transmute(input.unsafe_ref(0)); - do dst.len().times() { + for _ in range(0, dst.len()) { *x = to_le32(*y); x = x.offset(1); y = y.offset(1); diff --git a/src/libextra/dlist.rs b/src/libextra/dlist.rs index 076e86dd5b040..3b34b9f48bb15 100644 --- a/src/libextra/dlist.rs +++ b/src/libextra/dlist.rs @@ -1024,7 +1024,7 @@ mod tests { #[test] fn test_fuzz() { - do 25.times { + for _ in range(0, 25u) { fuzz_test(3); fuzz_test(16); fuzz_test(189); diff --git a/src/libextra/flate.rs b/src/libextra/flate.rs index ed8cbcd0663f3..a132a08267820 100644 --- a/src/libextra/flate.rs +++ b/src/libextra/flate.rs @@ -108,13 +108,13 @@ mod tests { fn test_flate_round_trip() { let mut r = rand::rng(); let mut words = ~[]; - do 20.times { + for _ in range(0, 20u) { let range = r.gen_uint_range(1, 10); words.push(r.gen_bytes(range)); } - do 20.times { + for _ in range(0, 20u) { let mut input = ~[]; - do 2000.times { + for _ in range(0, 2000u) { input.push_all(r.choose(words)); } debug!("de/inflate of %u bytes of random word-sequences", diff --git a/src/libextra/getopts.rs b/src/libextra/getopts.rs index 000520fe41e6e..e0cfeab7454ca 100644 --- a/src/libextra/getopts.rs +++ b/src/libextra/getopts.rs @@ -693,7 +693,7 @@ pub mod groups { // here we just need to indent the start of the description let rowlen = row.len(); if rowlen < 24 { - do (24 - rowlen).times { + for _ in range(0, 24 - rowlen) { row.push_char(' ') } } else { diff --git a/src/libextra/json.rs b/src/libextra/json.rs index 2287384b53a0e..4ba4e26fb53d8 100644 --- a/src/libextra/json.rs +++ b/src/libextra/json.rs @@ -76,7 +76,7 @@ fn escape_str(s: &str) -> ~str { fn spaces(n: uint) -> ~str { let mut ss = ~""; - do n.times { + for _ in range(0, n) { ss.push_str(" "); } return ss; diff --git a/src/libextra/ringbuf.rs b/src/libextra/ringbuf.rs index a38cb580c5057..5a6279d727085 100644 --- a/src/libextra/ringbuf.rs +++ b/src/libextra/ringbuf.rs @@ -507,7 +507,7 @@ mod tests { fn bench_grow(b: &mut test::BenchHarness) { let mut deq = RingBuf::new(); do b.iter { - do 65.times { + for _ in range(0, 65u) { deq.push_front(1); } } diff --git a/src/libextra/sort.rs b/src/libextra/sort.rs index bea7868fd32b7..4b404fee413b0 100644 --- a/src/libextra/sort.rs +++ b/src/libextra/sort.rs @@ -1068,7 +1068,7 @@ mod big_tests { tim_sort(arr); // /sort isSorted(arr); - do 3.times { + for _ in range(0, 3u) { let i1 = rng.gen_uint_range(0, n); let i2 = rng.gen_uint_range(0, n); arr.swap(i1, i2); @@ -1087,7 +1087,7 @@ mod big_tests { tim_sort(arr); // +sort isSorted(arr); - do (n/100).times { + for _ in range(0, n / 100) { let idx = rng.gen_uint_range(0, n); arr[idx] = rng.gen(); } @@ -1140,7 +1140,7 @@ mod big_tests { tim_sort(arr); // /sort isSorted(arr); - do 3.times { + for _ in range(0, 3u) { let i1 = rng.gen_uint_range(0, n); let i2 = rng.gen_uint_range(0, n); arr.swap(i1, i2); @@ -1159,7 +1159,7 @@ mod big_tests { tim_sort(arr); // +sort isSorted(arr); - do (n/100).times { + for _ in range(0, n / 100) { let idx = rng.gen_uint_range(0, n); arr[idx] = @rng.gen(); } diff --git a/src/libextra/sync.rs b/src/libextra/sync.rs index 756a5c7da0065..42206e5c08d7a 100644 --- a/src/libextra/sync.rs +++ b/src/libextra/sync.rs @@ -112,7 +112,7 @@ impl Sem { } } // Uncomment if you wish to test for sem races. Not valgrind-friendly. - /* do 1000.times { task::yield(); } */ + /* for _ in range(0, 1000u) { task::yield(); } */ // Need to wait outside the exclusive. if waiter_nobe.is_some() { let _ = waiter_nobe.unwrap().recv(); @@ -150,7 +150,7 @@ impl Sem<~[WaitQueue]> { fn new_and_signal(count: int, num_condvars: uint) -> Sem<~[WaitQueue]> { let mut queues = ~[]; - do num_condvars.times { + for _ in range(0, num_condvars) { queues.push(WaitQueue::new()); } Sem::new(count, queues) @@ -701,7 +701,6 @@ impl<'self> RWLockReadMode<'self> { #[cfg(test)] mod tests { - use sync::*; use std::cast; @@ -731,11 +730,11 @@ mod tests { let s2 = ~s.clone(); do task::spawn || { do s2.access { - do 5.times { task::yield(); } + for _ in range(0, 5u) { task::yield(); } } } do s.access { - do 5.times { task::yield(); } + for _ in range(0, 5u) { task::yield(); } } } #[test] @@ -748,7 +747,7 @@ mod tests { s2.acquire(); c.send(()); } - do 5.times { task::yield(); } + for _ in range(0, 5u) { task::yield(); } s.release(); let _ = p.recv(); @@ -757,7 +756,7 @@ mod tests { let s = ~Semaphore::new(0); let s2 = ~s.clone(); do task::spawn || { - do 5.times { task::yield(); } + for _ in range(0, 5u) { task::yield(); } s2.release(); let _ = p.recv(); } @@ -800,7 +799,7 @@ mod tests { c.send(()); } let _ = p.recv(); // wait for child to come alive - do 5.times { task::yield(); } // let the child contend + for _ in range(0, 5u) { task::yield(); } // let the child contend } let _ = p.recv(); // wait for child to be done } @@ -834,7 +833,7 @@ mod tests { } fn access_shared(sharedstate: &mut int, m: &Mutex, n: uint) { - do n.times { + for _ in range(0, n) { do m.lock { let oldval = *sharedstate; task::yield(); @@ -880,7 +879,7 @@ mod tests { let m = ~Mutex::new(); let mut ports = ~[]; - do num_waiters.times { + for _ in range(0, num_waiters) { let mi = ~m.clone(); let (port, chan) = comm::stream(); ports.push(port); @@ -974,7 +973,7 @@ mod tests { let result: result::Result<(),()> = do task::try || { let mut sibling_convos = ~[]; - do 2.times { + for _ in range(0, 2u) { let (p,c) = comm::stream(); let c = Cell::new(c); sibling_convos.push(p); @@ -1111,7 +1110,7 @@ mod tests { fn access_shared(sharedstate: &mut int, x: &RWLock, mode: RWLockMode, n: uint) { - do n.times { + for _ in range(0, n) { do lock_rwlock_in_mode(x, mode) { let oldval = *sharedstate; task::yield(); @@ -1242,7 +1241,7 @@ mod tests { let x = ~RWLock::new(); let mut ports = ~[]; - do num_waiters.times { + for _ in range(0, num_waiters) { let xi = (*x).clone(); let (port, chan) = comm::stream(); ports.push(port); diff --git a/src/libextra/task_pool.rs b/src/libextra/task_pool.rs index f1bf9e81c7251..5c404ee54e6fd 100644 --- a/src/libextra/task_pool.rs +++ b/src/libextra/task_pool.rs @@ -102,7 +102,7 @@ fn test_task_pool() { g }; let mut pool = TaskPool::new(4, Some(SingleThreaded), f); - do 8.times { + for _ in range(0, 8u) { pool.execute(|i| printfln!("Hello from thread %u!", *i)); } } diff --git a/src/libextra/treemap.rs b/src/libextra/treemap.rs index 118754ec02830..c7a406081fab6 100644 --- a/src/libextra/treemap.rs +++ b/src/libextra/treemap.rs @@ -1014,8 +1014,8 @@ mod test_treemap { let mut rng = rand::IsaacRng::new_seeded(&[42]); - do 3.times { - do 90.times { + for _ in range(0, 3u) { + for _ in range(0, 90u) { let k = rng.gen(); let v = rng.gen(); if !ctrl.iter().any(|x| x == &(k, v)) { @@ -1026,7 +1026,7 @@ mod test_treemap { } } - do 30.times { + for _ in range(0, 30u) { let r = rng.gen_uint_range(0, ctrl.len()); let (key, _) = ctrl.remove(r); assert!(map.remove(&key)); diff --git a/src/librustc/middle/dataflow.rs b/src/librustc/middle/dataflow.rs index 46b6d2214ae49..6129cc3ad009b 100644 --- a/src/librustc/middle/dataflow.rs +++ b/src/librustc/middle/dataflow.rs @@ -178,7 +178,7 @@ impl DataFlowContext { }; if expanded { let entry = if self.oper.initial_value() { uint::max_value } else {0}; - do self.words_per_id.times { + for _ in range(0, self.words_per_id) { self.gens.push(0); self.kills.push(0); self.on_entry.push(entry); diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 435e7943d662f..81a349c8b7bf1 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -455,7 +455,7 @@ impl Context { if doc_hidden && self.doc_hidden { self.doc_hidden = false; } - do pushed.times { + for _ in range(0, pushed) { let (lint, lvl, src) = self.lint_stack.pop(); self.set_level(lint, lvl, src); } diff --git a/src/librustc/middle/privacy.rs b/src/librustc/middle/privacy.rs index 54e7c79e97cc2..9496b96f06053 100644 --- a/src/librustc/middle/privacy.rs +++ b/src/librustc/middle/privacy.rs @@ -343,7 +343,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, node_id, (method_map, visitor)); - do n_added.times { + for _ in range(0, n_added) { ignore(privileged_items.pop()); } }, @@ -374,7 +374,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, oldvisit::visit_block(block, (method_map, visitor)); - do n_added.times { + for _ in range(0, n_added) { ignore(privileged_items.pop()); } }, diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index 87d26fa5ba07c..6ebf5ced95bf3 100644 --- a/src/librustc/middle/trans/consts.rs +++ b/src/librustc/middle/trans/consts.rs @@ -190,7 +190,7 @@ pub fn const_expr(cx: @mut CrateContext, e: @ast::expr) -> ValueRef { Some(@ty::AutoDerefRef(ref adj)) => { let mut ty = ety; let mut maybe_ptr = None; - do adj.autoderefs.times { + for _ in range(0, adj.autoderefs) { let (dv, dt) = const_deref(cx, llconst, ty, false); maybe_ptr = Some(llconst); llconst = dv; diff --git a/src/libstd/iter.rs b/src/libstd/iter.rs deleted file mode 100644 index ce528bc952255..0000000000000 --- a/src/libstd/iter.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -/*! Times trait - -~~~ {.rust} -use iter::Times; -let ten = 10 as uint; -let mut accum = 0; -do ten.times { accum += 1; } -~~~ - -*/ - -#[allow(missing_doc)] -pub trait Times { - fn times(&self, it: &fn()); -} - diff --git a/src/libstd/num/uint.rs b/src/libstd/num/uint.rs index 86bc98e53fcb6..9e7bb26087f3c 100644 --- a/src/libstd/num/uint.rs +++ b/src/libstd/num/uint.rs @@ -10,7 +10,6 @@ //! Operations and constants for `uint` -use iter; use sys; pub use self::generated::*; @@ -70,27 +69,6 @@ pub fn div_round(x: uint, y: uint) -> uint { /// pub fn div_floor(x: uint, y: uint) -> uint { return x / y; } -impl iter::Times for uint { - #[inline] - /// - /// A convenience form for basic repetition. Given a uint `x`, - /// `do x.times { ... }` executes the given block x times. - /// - /// Equivalent to `for uint::range(0, x) |_| { ... }`. - /// - /// Not defined on all integer types to permit unambiguous - /// use with integer literals of inferred integer-type as - /// the self-value (eg. `do 100.times { ... }`). - /// - fn times(&self, it: &fn()) { - let mut i = *self; - while i > 0 { - it(); - i -= 1; - } - } -} - /// Returns the smallest power of 2 greater than or equal to `n` #[inline] pub fn next_power_of_two(n: uint) -> uint { @@ -159,12 +137,3 @@ fn test_div() { assert!((div_ceil(3u, 4u) == 1u)); assert!((div_round(3u, 4u) == 1u)); } - -#[test] -pub fn test_times() { - use iter::Times; - let ten = 10 as uint; - let mut accum = 0; - do ten.times { accum += 1; } - assert!((accum == 10)); -} diff --git a/src/libstd/prelude.rs b/src/libstd/prelude.rs index 63f7300200931..d351ffb00f860 100644 --- a/src/libstd/prelude.rs +++ b/src/libstd/prelude.rs @@ -49,7 +49,6 @@ pub use cmp::{Eq, ApproxEq, Ord, TotalEq, TotalOrd, Ordering, Less, Equal, Great pub use char::Char; pub use container::{Container, Mutable, Map, MutableMap, Set, MutableSet}; pub use hash::Hash; -pub use iter::Times; pub use iterator::Extendable; pub use iterator::{Iterator, DoubleEndedIterator}; pub use iterator::{ClonableIterator, OrdIterator}; diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs index 35c7380e3117c..354d51aa43aad 100644 --- a/src/libstd/rand.rs +++ b/src/libstd/rand.rs @@ -750,7 +750,7 @@ impl IsaacRng { }} ); - do 4.times { mix!(); } + for _ in range(0u, 4) { mix!(); } if use_rsl { macro_rules! memloop ( @@ -960,9 +960,8 @@ pub fn random() -> T { #[cfg(test)] mod test { - use iterator::{Iterator, range}; - use option::{Option, Some}; use super::*; + use prelude::*; #[test] fn test_rng_seeded() { @@ -1162,7 +1161,7 @@ mod test { } // run against several seeds - do 10.times { + for _ in range(0u, 10) { unsafe { let seed = super::seed(); let rt_rng = do seed.as_imm_buf |p, sz| { @@ -1170,7 +1169,7 @@ mod test { }; let mut rng = IsaacRng::new_seeded(seed); - do 10000.times { + for _ in range(0u, 10000) { assert_eq!(rng.next(), rustrt::rand_next(rt_rng)); } rustrt::rand_free(rt_rng); diff --git a/src/libstd/rt/comm.rs b/src/libstd/rt/comm.rs index 42d59ccdf958e..666a16c8bc7ba 100644 --- a/src/libstd/rt/comm.rs +++ b/src/libstd/rt/comm.rs @@ -726,7 +726,7 @@ mod test { use option::*; use rt::test::*; use cell::Cell; - use iter::Times; + use iterator::{Iterator, range}; #[test] fn oneshot_single_thread_close_port_first() { @@ -875,7 +875,7 @@ mod test { #[test] fn oneshot_multi_thread_close_stress() { - do stress_factor().times { + for _ in range(0, stress_factor()) { do run_in_newsched_task { let (port, chan) = oneshot::(); let port_cell = Cell::new(port); @@ -890,7 +890,7 @@ mod test { #[test] fn oneshot_multi_thread_send_close_stress() { - do stress_factor().times { + for _ in range(0, stress_factor()) { do run_in_newsched_task { let (port, chan) = oneshot::(); let chan_cell = Cell::new(chan); @@ -910,7 +910,7 @@ mod test { #[test] fn oneshot_multi_thread_recv_close_stress() { - do stress_factor().times { + for _ in range(0, stress_factor()) { do run_in_newsched_task { let (port, chan) = oneshot::(); let chan_cell = Cell::new(chan); @@ -936,7 +936,7 @@ mod test { #[test] fn oneshot_multi_thread_send_recv_stress() { - do stress_factor().times { + for _ in range(0, stress_factor()) { do run_in_newsched_task { let (port, chan) = oneshot::<~int>(); let chan_cell = Cell::new(chan); @@ -955,7 +955,7 @@ mod test { #[test] fn stream_send_recv_stress() { - do stress_factor().times { + for _ in range(0, stress_factor()) { do run_in_mt_newsched_task { let (port, chan) = stream::<~int>(); @@ -992,8 +992,8 @@ mod test { // Regression test that we don't run out of stack in scheduler context do run_in_newsched_task { let (port, chan) = stream(); - do 10000.times { chan.send(()) } - do 10000.times { port.recv() } + for _ in range(0u, 10000) { chan.send(()) } + for _ in range(0u, 10000) { port.recv() } } } @@ -1003,14 +1003,14 @@ mod test { let (port, chan) = stream(); let chan = SharedChan::new(chan); let total = stress_factor() + 100; - do total.times { + for _ in range(0, total) { let chan_clone = chan.clone(); do spawntask_random { chan_clone.send(()); } } - do total.times { + for _ in range(0, total) { port.recv(); } } @@ -1025,7 +1025,7 @@ mod test { let end_chan = SharedChan::new(end_chan); let port = SharedPort::new(port); let total = stress_factor() + 100; - do total.times { + for _ in range(0, total) { let end_chan_clone = end_chan.clone(); let port_clone = port.clone(); do spawntask_random { @@ -1034,11 +1034,11 @@ mod test { } } - do total.times { + for _ in range(0, total) { chan.send(()); } - do total.times { + for _ in range(0, total) { end_port.recv(); } } @@ -1062,10 +1062,10 @@ mod test { let end_chan = SharedChan::new(end_chan); let port = SharedPort::new(port); let chan = SharedChan::new(chan); - let send_total = 10; - let recv_total = 20; + let send_total = 10u; + let recv_total = 20u; do spawntask_random { - do send_total.times { + for _ in range(0, send_total) { let chan_clone = chan.clone(); do spawntask_random { chan_clone.send(()); @@ -1074,7 +1074,7 @@ mod test { } let end_chan_clone = end_chan.clone(); do spawntask_random { - do recv_total.times { + for _ in range(0, recv_total) { let port_clone = port.clone(); let end_chan_clone = end_chan_clone.clone(); do spawntask_random { @@ -1085,7 +1085,7 @@ mod test { } let mut recvd = 0; - do recv_total.times { + for _ in range(0, recv_total) { recvd += if end_port.recv() { 1 } else { 0 }; } @@ -1104,15 +1104,15 @@ mod test { let pipe = megapipe(); let total = stress_factor() + 10; let mut rng = rand::rng(); - do total.times { + for _ in range(0, total) { let msgs = rng.gen_uint_range(0, 10); let pipe_clone = pipe.clone(); let end_chan_clone = end_chan.clone(); do spawntask_random { - do msgs.times { + for _ in range(0, msgs) { pipe_clone.send(()); } - do msgs.times { + for _ in range(0, msgs) { pipe_clone.recv(); } } @@ -1120,7 +1120,7 @@ mod test { end_chan_clone.send(()); } - do total.times { + for _ in range(0, total) { end_port.recv(); } } diff --git a/src/libstd/rt/io/net/tcp.rs b/src/libstd/rt/io/net/tcp.rs index 27222542e087d..6af60e44a9eda 100644 --- a/src/libstd/rt/io/net/tcp.rs +++ b/src/libstd/rt/io/net/tcp.rs @@ -367,11 +367,11 @@ mod test { fn multiple_connect_serial_ip4() { do run_in_newsched_task { let addr = next_test_ip4(); - let max = 10; + let max = 10u; do spawntask { let mut listener = TcpListener::bind(addr); - do max.times { + for _ in range(0, max) { let mut stream = listener.accept(); let mut buf = [0]; stream.read(buf); @@ -380,7 +380,7 @@ mod test { } do spawntask { - do max.times { + for _ in range(0, max) { let mut stream = TcpStream::connect(addr); stream.write([99]); } @@ -392,11 +392,11 @@ mod test { fn multiple_connect_serial_ip6() { do run_in_newsched_task { let addr = next_test_ip6(); - let max = 10; + let max = 10u; do spawntask { let mut listener = TcpListener::bind(addr); - do max.times { + for _ in range(0, max) { let mut stream = listener.accept(); let mut buf = [0]; stream.read(buf); @@ -405,7 +405,7 @@ mod test { } do spawntask { - do max.times { + for _ in range(0, max) { let mut stream = TcpStream::connect(addr); stream.write([99]); } diff --git a/src/libstd/rt/sched.rs b/src/libstd/rt/sched.rs index ce4e64c47d2ef..dbc9e6ad7a128 100644 --- a/src/libstd/rt/sched.rs +++ b/src/libstd/rt/sched.rs @@ -1099,13 +1099,12 @@ mod test { #[test] fn multithreading() { use rt::comm::*; - use iter::Times; use vec::OwnedVector; use container::Container; do run_in_mt_newsched_task { let mut ports = ~[]; - do 10.times { + for _ in range(0, 10u) { let (port, chan) = oneshot(); let chan_cell = Cell::new(chan); do spawntask_later { diff --git a/src/libstd/select.rs b/src/libstd/select.rs index a92339e256244..bb820aac695b8 100644 --- a/src/libstd/select.rs +++ b/src/libstd/select.rs @@ -121,7 +121,6 @@ pub fn select2, TB, B: SelectPort>(mut a: A, mut b: B) mod test { use super::*; use clone::Clone; - use iter::Times; use option::*; use rt::comm::*; use rt::test::*; @@ -206,7 +205,7 @@ mod test { do run_in_newsched_task { let (ports, _) = unzip(from_fn(10, |_| stream())); let (port, chan) = stream(); - do 10.times { chan.send(31337); } + for _ in range(0, 10u) { chan.send(31337); } let mut ports = ports; let mut port = Some(port); let order = [5u,0,4,3,2,6,9,8,7,1]; @@ -284,7 +283,7 @@ mod test { do run_in_newsched_task { // A bit of stress, since ordinarily this is just smoke and mirrors. - do 4.times { + for _ in range(0, 4u) { let send_on_chans = send_on_chans.clone(); do task::spawn { let mut ports = ~[]; diff --git a/src/libstd/std.rs b/src/libstd/std.rs index 9370e7b0e84c9..88468708433bf 100644 --- a/src/libstd/std.rs +++ b/src/libstd/std.rs @@ -140,7 +140,6 @@ pub mod borrow; pub mod from_str; #[path = "num/num.rs"] pub mod num; -pub mod iter; pub mod iterator; pub mod to_str; pub mod to_bytes; diff --git a/src/libstd/str.rs b/src/libstd/str.rs index e4d63da3ee926..c84ae55bc9e00 100644 --- a/src/libstd/str.rs +++ b/src/libstd/str.rs @@ -22,10 +22,9 @@ use char; use char::Char; use clone::{Clone, DeepClone}; use container::{Container, Mutable}; -use iter::Times; use iterator::{Iterator, FromIterator, Extendable}; use iterator::{Filter, AdditiveIterator, Map}; -use iterator::{Invert, DoubleEndedIterator}; +use iterator::{Invert, DoubleEndedIterator, range}; use libc; use num::Zero; use option::{None, Option, Some}; @@ -1801,7 +1800,7 @@ impl<'self> StrSlice<'self> for &'self str { do ret.as_mut_buf |rbuf, _len| { let mut rbuf = rbuf; - do nn.times { + for _ in range(0, nn) { ptr::copy_memory(rbuf, buf, len); rbuf = rbuf.offset(len as int); } diff --git a/src/libstd/task/mod.rs b/src/libstd/task/mod.rs index 820baec6a7956..47744f4066c99 100644 --- a/src/libstd/task/mod.rs +++ b/src/libstd/task/mod.rs @@ -689,7 +689,7 @@ fn test_spawn_unlinked_unsup_no_fail_down() { // grandchild sends on a port let ch = ch.clone(); do spawn_unlinked { // Give middle task a chance to fail-but-not-kill-us. - do 16.times { task::yield(); } + for _ in range(0u, 16) { task::yield(); } ch.send(()); // If killed first, grandparent hangs. } fail!(); // Shouldn't kill either (grand)parent or (grand)child. @@ -712,7 +712,7 @@ fn test_spawn_unlinked_sup_no_fail_up() { // child unlinked fails do run_in_newsched_task { do spawn_supervised { fail!(); } // Give child a chance to fail-but-not-kill-us. - do 16.times { task::yield(); } + for _ in range(0u, 16) { task::yield(); } } } #[ignore(reason = "linked failure")] @@ -821,7 +821,7 @@ fn test_spawn_failure_propagate_grandchild() { do spawn_supervised { do spawn_supervised { block_forever(); } } - do 16.times { task::yield(); } + for _ in range(0u, 16) { task::yield(); } fail!(); }; assert!(result.is_err()); @@ -838,7 +838,7 @@ fn test_spawn_failure_propagate_secondborn() { do spawn_supervised { do spawn { block_forever(); } // linked } - do 16.times { task::yield(); } + for _ in range(0u, 16) { task::yield(); } fail!(); }; assert!(result.is_err()); @@ -855,7 +855,7 @@ fn test_spawn_failure_propagate_nephew_or_niece() { do spawn { // linked do spawn_supervised { block_forever(); } } - do 16.times { task::yield(); } + for _ in range(0u, 16) { task::yield(); } fail!(); }; assert!(result.is_err()); @@ -872,7 +872,7 @@ fn test_spawn_linked_sup_propagate_sibling() { do spawn { // linked do spawn { block_forever(); } // linked } - do 16.times { task::yield(); } + for _ in range(0u, 16) { task::yield(); } fail!(); }; assert!(result.is_err()); @@ -1062,7 +1062,7 @@ fn test_spawn_sched_blocking() { // Testing that a task in one scheduler can block in foreign code // without affecting other schedulers - do 20u.times { + for _ in range(0, 20u) { let (start_po, start_ch) = stream(); let (fin_po, fin_ch) = stream(); @@ -1169,7 +1169,7 @@ fn test_unkillable() { // We want to do this after failing do spawn_unlinked { - do 10.times { yield() } + for _ in range(0, 10u) { yield() } ch.send(()); } @@ -1205,7 +1205,7 @@ fn test_unkillable_nested() { // We want to do this after failing do spawn_unlinked || { - do 10.times { yield() } + for _ in range(0u, 10) { yield() } ch.send(()); } diff --git a/src/libstd/unstable/extfmt.rs b/src/libstd/unstable/extfmt.rs index 7b1f0e8ced8f2..6aceae104fa33 100644 --- a/src/libstd/unstable/extfmt.rs +++ b/src/libstd/unstable/extfmt.rs @@ -483,6 +483,7 @@ pub mod rt { use uint; use vec; use option::{Some, None, Option}; + use iterator::{Iterator, range}; pub static flag_none : u32 = 0u32; pub static flag_left_justify : u32 = 0b00000000000001u32; @@ -638,7 +639,7 @@ pub mod rt { buf.push_char(c); } buf.push_str(s); - do diff.times { + for _ in range(0, diff) { buf.push_char(padchar); } return; diff --git a/src/libstd/unstable/sync.rs b/src/libstd/unstable/sync.rs index adbf9fc757819..e4d8afbcc4830 100644 --- a/src/libstd/unstable/sync.rs +++ b/src/libstd/unstable/sync.rs @@ -612,7 +612,7 @@ mod tests { let x = Exclusive::new(~~"hello"); let x2 = x.clone(); do task::spawn { - do 10.times { task::yield(); } // try to let the unwrapper go + for _ in range(0u, 10) { task::yield(); } // try to let the unwrapper go fail!(); // punt it awake from its deadlock } let _z = x.unwrap(); diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index 5cdfe8e0f110b..c1849792acfb6 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -301,7 +301,7 @@ fn highlight_lines(cm: @codemap::CodeMap, // Skip is the number of characters we need to skip because they are // part of the 'filename:line ' part of the previous line. let skip = fm.name.len() + digits + 3u; - do skip.times() { + for _ in range(0, skip) { s.push_char(' '); } let orig = fm.get_line(lines.lines[0] as int); @@ -322,7 +322,7 @@ fn highlight_lines(cm: @codemap::CodeMap, if hi.col != lo.col { // the ^ already takes up one space let num_squigglies = hi.col.to_uint()-lo.col.to_uint()-1u; - do num_squigglies.times() { + for _ in range(0, num_squigglies) { s.push_char('~') } } diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index c208a7f7e3e40..92a312fa4c45b 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -403,7 +403,7 @@ pub fn parse( } cur_eis.push(ei); - do rust_parser.tokens_consumed.times() || { + for _ in range(0, *rust_parser.tokens_consumed) { rdr.next_token(); } } diff --git a/src/test/compile-fail/borrowck-lend-flow-loop.rs b/src/test/compile-fail/borrowck-lend-flow-loop.rs index 869ef0591e4be..74c516bd76574 100644 --- a/src/test/compile-fail/borrowck-lend-flow-loop.rs +++ b/src/test/compile-fail/borrowck-lend-flow-loop.rs @@ -39,7 +39,7 @@ fn block_overarching_alias_mut() { let mut v = ~3; let mut x = &mut v; - do 3.times { + for _ in range(0, 3u) { borrow(v); //~ ERROR cannot borrow } *x = ~5; diff --git a/src/test/compile-fail/implicit-method-bind.rs b/src/test/compile-fail/implicit-method-bind.rs index 7946510c45903..7f0ced88ac33d 100644 --- a/src/test/compile-fail/implicit-method-bind.rs +++ b/src/test/compile-fail/implicit-method-bind.rs @@ -9,5 +9,5 @@ // except according to those terms. fn main() { - let _f = 10.times; //~ ERROR attempted to take value of method + let _f = "foo".len; //~ ERROR attempted to take value of method } diff --git a/src/test/run-fail/extern-fail.rs b/src/test/run-fail/extern-fail.rs index a65db3ee51543..c3d5056078618 100644 --- a/src/test/run-fail/extern-fail.rs +++ b/src/test/run-fail/extern-fail.rs @@ -41,7 +41,7 @@ fn count(n: uint) -> uint { } fn main() { - do 10u.times { + for _ in range(0, 10u) { do task::spawn { let result = count(5u); info!("result = %?", result); diff --git a/src/test/run-pass/bitv-perf-test.rs b/src/test/run-pass/bitv-perf-test.rs index b57e179f4a9af..c2b0d648487c0 100644 --- a/src/test/run-pass/bitv-perf-test.rs +++ b/src/test/run-pass/bitv-perf-test.rs @@ -20,5 +20,5 @@ fn bitv_test() { } pub fn main() { - do 10000.times || {bitv_test()}; + for _ in range(0, 10000u) { bitv_test() }; } diff --git a/src/test/run-pass/deriving-encodable-decodable.rs b/src/test/run-pass/deriving-encodable-decodable.rs index c282860957a1f..de069e43f3aae 100644 --- a/src/test/run-pass/deriving-encodable-decodable.rs +++ b/src/test/run-pass/deriving-encodable-decodable.rs @@ -69,7 +69,7 @@ pub fn main() { roundtrip::(); roundtrip::(); - do 20.times { + for _ in range(0, 20u) { roundtrip::(); roundtrip::(); roundtrip::>(); diff --git a/src/test/run-pass/deriving-rand.rs b/src/test/run-pass/deriving-rand.rs index 65bfc14406fc4..92bbe809c8c36 100644 --- a/src/test/run-pass/deriving-rand.rs +++ b/src/test/run-pass/deriving-rand.rs @@ -32,7 +32,7 @@ enum D { fn main() { // check there's no segfaults - do 20.times { + for _ in range(0, 20u) { rand::random::(); rand::random::(); rand::random::(); diff --git a/src/test/run-pass/extern-stress.rs b/src/test/run-pass/extern-stress.rs index 4574fbc1ff0cd..611a8906fa5fb 100644 --- a/src/test/run-pass/extern-stress.rs +++ b/src/test/run-pass/extern-stress.rs @@ -39,7 +39,7 @@ fn count(n: uint) -> uint { } pub fn main() { - do 100u.times { + for _ in range(0, 100u) { do task::spawn { assert_eq!(count(5u), 16u); }; diff --git a/src/test/run-pass/extern-yield.rs b/src/test/run-pass/extern-yield.rs index 4722eeea3d7cc..c5eeb8a7c3903 100644 --- a/src/test/run-pass/extern-yield.rs +++ b/src/test/run-pass/extern-yield.rs @@ -36,7 +36,7 @@ fn count(n: uint) -> uint { } pub fn main() { - do 10u.times { + for _ in range(0, 10u) { do task::spawn { let result = count(5u); info!("result = %?", result); diff --git a/src/test/run-pass/issue-3211.rs b/src/test/run-pass/issue-3211.rs index 49ed6de0c9999..78a7c6be00bc7 100644 --- a/src/test/run-pass/issue-3211.rs +++ b/src/test/run-pass/issue-3211.rs @@ -1,3 +1,17 @@ +pub trait Times { + fn times(&self, it: &fn()); +} + +impl Times for uint { + fn times(&self, it: &fn()) { + let mut i = *self; + while i > 0 { + it(); + i -= 1; + } + } +} + pub fn main() { let mut x = 0; do 4096.times { diff --git a/src/test/run-pass/issue-3563-3.rs b/src/test/run-pass/issue-3563-3.rs index e6429aa550826..9bbcda3c20145 100644 --- a/src/test/run-pass/issue-3563-3.rs +++ b/src/test/run-pass/issue-3563-3.rs @@ -67,7 +67,7 @@ fn AsciiArt(width: uint, height: uint, fill: char) -> AsciiArt { // Use an anonymous function to build a vector of vectors containing // blank characters for each position in our canvas. let lines = do vec::build_sized(height) |push| { - do height.times { + for _ in range(0, height) { push(vec::from_elem(width, '.')); } }; diff --git a/src/test/run-pass/issue-4401.rs b/src/test/run-pass/issue-4401.rs index 99250c4c8a24a..f077904456357 100644 --- a/src/test/run-pass/issue-4401.rs +++ b/src/test/run-pass/issue-4401.rs @@ -1,6 +1,6 @@ pub fn main() { let mut count = 0; - do 999_999.times() { + for _ in range(0, 999_999u) { count += 1; } assert_eq!(count, 999_999); diff --git a/src/test/run-pass/issue-5321-immediates-with-bare-self.rs b/src/test/run-pass/issue-5321-immediates-with-bare-self.rs index 3f4b732af3276..fbec5490a46b3 100644 --- a/src/test/run-pass/issue-5321-immediates-with-bare-self.rs +++ b/src/test/run-pass/issue-5321-immediates-with-bare-self.rs @@ -14,7 +14,7 @@ trait Fooable { impl Fooable for uint { fn yes(self) { - do self.times { + for _ in range(0, self) { println("yes"); } } diff --git a/src/test/run-pass/numeric-method-autoexport.rs b/src/test/run-pass/numeric-method-autoexport.rs index 569ccf5335ea0..13197f2dd394c 100644 --- a/src/test/run-pass/numeric-method-autoexport.rs +++ b/src/test/run-pass/numeric-method-autoexport.rs @@ -31,9 +31,6 @@ pub fn main() { assert_eq!(15u32.add(&6u32), 21u32); assert_eq!(15u64.add(&6u64), 21u64); - // times - 15u.times(|| {}); - // floats // num assert_eq!(10f.to_int(), 10); diff --git a/src/test/run-pass/syntax-extension-fmt.rs b/src/test/run-pass/syntax-extension-fmt.rs index 8e5892b6db194..a51bf5cf77347 100644 --- a/src/test/run-pass/syntax-extension-fmt.rs +++ b/src/test/run-pass/syntax-extension-fmt.rs @@ -266,7 +266,7 @@ fn more_floats() { } fn pointer() { - do 10.times { + for _ in range(0, 10u) { let x: uint = ::std::rand::random(); assert_eq!(fmt!("%p", x as *uint), fmt!("0x%x", x)); }