Skip to content

Commit 78cde5b

Browse files
author
blake2-ppc
committed
std: Change Times trait to use do instead of for
Change the former repetition:: for 5.times { } to:: do 5.times { } .times() cannot be broken with `break` or `return` anymore; for those cases, use a numerical range loop instead.
1 parent 7e210a8 commit 78cde5b

Some content is hidden

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

61 files changed

+137
-151
lines changed

doc/tutorial-tasks.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ an intermediate generation has already exited:
548548
~~~
549549
# use std::task;
550550
# fn sleep_forever() { loop { task::yield() } }
551-
# fn wait_for_a_while() { for 1000.times { task::yield() } }
551+
# fn wait_for_a_while() { do 1000.times { task::yield() } }
552552
# do task::try::<int> {
553553
do task::spawn_supervised {
554554
do task::spawn_supervised {
@@ -567,7 +567,7 @@ other at all, using `task::spawn_unlinked` for _isolated failure_.
567567
~~~
568568
# use std::task;
569569
# fn random() -> uint { 100 }
570-
# fn sleep_for(i: uint) { for i.times { task::yield() } }
570+
# fn sleep_for(i: uint) { do i.times { task::yield() } }
571571
# do task::try::<()> {
572572
let (time1, time2) = (random(), random());
573573
do task::spawn_unlinked {

doc/tutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1899,7 +1899,7 @@ struct TimeBomb {
18991899
19001900
impl Drop for TimeBomb {
19011901
fn drop(&self) {
1902-
for self.explosivity.times {
1902+
do self.explosivity.times {
19031903
println("blam!");
19041904
}
19051905
}

src/libextra/arc.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* let numbers=vec::from_fn(100, |ind| (ind as float)*rand::random());
2424
* let shared_numbers=arc::Arc::new(numbers);
2525
*
26-
* for 10.times {
26+
* do 10.times {
2727
* let (port, chan) = stream();
2828
* chan.send(shared_numbers.clone());
2929
*
@@ -765,7 +765,7 @@ mod tests {
765765
766766
do task::spawn || {
767767
do arc2.write |num| {
768-
for 10.times {
768+
do 10.times {
769769
let tmp = *num;
770770
*num = -1;
771771
task::yield();
@@ -777,7 +777,7 @@ mod tests {
777777
778778
// Readers try to catch the writer in the act
779779
let mut children = ~[];
780-
for 5.times {
780+
do 5.times {
781781
let arc3 = (*arc).clone();
782782
let mut builder = task::task();
783783
builder.future_result(|r| children.push(r));
@@ -811,7 +811,7 @@ mod tests {
811811
812812
// Reader tasks
813813
let mut reader_convos = ~[];
814-
for 10.times {
814+
do 10.times {
815815
let ((rp1,rc1),(rp2,rc2)) = (comm::stream(),comm::stream());
816816
reader_convos.push((rc1, rp2));
817817
let arcn = (*arc).clone();
@@ -925,7 +925,7 @@ mod tests {
925925
do read_mode.read |state| {
926926
// if writer mistakenly got in, make sure it mutates state
927927
// before we assert on it
928-
for 5.times { task::yield(); }
928+
do 5.times { task::yield(); }
929929
// make sure writer didn't get in.
930930
assert!(*state);
931931
}
@@ -937,6 +937,6 @@ mod tests {
937937
// helped to expose the race nearly 100% of the time... but adding
938938
// yields in the intuitively-right locations made it even less likely,
939939
// and I wasn't sure why :( . This is a mediocre "next best" option.
940-
for 8.times { test_rw_write_cond_downgrade_read_race_helper() }
940+
do 8.times { test_rw_write_cond_downgrade_read_race_helper() }
941941
}
942942
}

src/libextra/base64.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,9 @@ mod test {
358358
use std::rand::{task_rng, random, RngUtil};
359359
use std::vec;
360360
361-
for 1000.times {
361+
do 1000.times {
362362
let v: ~[u8] = do vec::build |push| {
363-
for task_rng().gen_uint_range(1, 100).times {
363+
do task_rng().gen_uint_range(1, 100).times {
364364
push(random());
365365
}
366366
};
@@ -389,4 +389,4 @@ mod test {
389389
bh.bytes = b.len() as u64;
390390
}
391391

392-
}
392+
}

src/libextra/bitv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ impl BitvSet {
674674
fn other_op(&mut self, other: &BitvSet, f: &fn(uint, uint) -> uint) {
675675
fn nbits(mut w: uint) -> uint {
676676
let mut bits = 0;
677-
for uint::bits.times {
677+
for uint::range(0, uint::bits) |_| {
678678
if w == 0 {
679679
break;
680680
}

src/libextra/dlist.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,7 @@ mod tests {
933933

934934
#[test]
935935
fn test_fuzz() {
936-
for 25.times {
936+
do 25.times {
937937
fuzz_test(3);
938938
fuzz_test(16);
939939
fuzz_test(189);

src/libextra/flate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ mod tests {
9090
fn test_flate_round_trip() {
9191
let mut r = rand::rng();
9292
let mut words = ~[];
93-
for 20.times {
93+
do 20.times {
9494
let range = r.gen_uint_range(1, 10);
9595
words.push(r.gen_bytes(range));
9696
}
97-
for 20.times {
97+
do 20.times {
9898
let mut input = ~[];
99-
for 2000.times {
99+
do 2000.times {
100100
input.push_all(r.choose(words));
101101
}
102102
debug!("de/inflate of %u bytes of random word-sequences",

src/libextra/getopts.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ pub mod groups {
662662
// here we just need to indent the start of the description
663663
let rowlen = row.len();
664664
if rowlen < 24 {
665-
for (24 - rowlen).times {
665+
do (24 - rowlen).times {
666666
row.push_char(' ')
667667
}
668668
} else {

src/libextra/json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ fn escape_str(s: &str) -> ~str {
7777

7878
fn spaces(n: uint) -> ~str {
7979
let mut ss = ~"";
80-
for n.times {
80+
do n.times {
8181
ss.push_str(" ");
8282
}
8383
return ss;

src/libextra/ringbuf.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ mod tests {
509509
fn bench_grow(b: &mut test::BenchHarness) {
510510
let mut deq = RingBuf::new();
511511
do b.iter {
512-
for 65.times {
512+
do 65.times {
513513
deq.push_front(1);
514514
}
515515
}

src/libextra/sort.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,7 @@ mod big_tests {
10811081
tim_sort(arr); // /sort
10821082
isSorted(arr);
10831083

1084-
for 3.times {
1084+
do 3.times {
10851085
let i1 = rng.gen_uint_range(0, n);
10861086
let i2 = rng.gen_uint_range(0, n);
10871087
arr.swap(i1, i2);
@@ -1100,7 +1100,7 @@ mod big_tests {
11001100
tim_sort(arr); // +sort
11011101
isSorted(arr);
11021102

1103-
for (n/100).times {
1103+
do (n/100).times {
11041104
let idx = rng.gen_uint_range(0, n);
11051105
arr[idx] = rng.gen();
11061106
}
@@ -1153,7 +1153,7 @@ mod big_tests {
11531153
tim_sort(arr); // /sort
11541154
isSorted(arr);
11551155

1156-
for 3.times {
1156+
do 3.times {
11571157
let i1 = rng.gen_uint_range(0, n);
11581158
let i2 = rng.gen_uint_range(0, n);
11591159
arr.swap(i1, i2);
@@ -1172,7 +1172,7 @@ mod big_tests {
11721172
tim_sort(arr); // +sort
11731173
isSorted(arr);
11741174

1175-
for (n/100).times {
1175+
do (n/100).times {
11761176
let idx = rng.gen_uint_range(0, n);
11771177
arr[idx] = @rng.gen();
11781178
}

src/libextra/sync.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ impl<Q:Send> Sem<Q> {
106106
}
107107
}
108108
// Uncomment if you wish to test for sem races. Not valgrind-friendly.
109-
/* for 1000.times { task::yield(); } */
109+
/* do 1000.times { task::yield(); } */
110110
// Need to wait outside the exclusive.
111111
if waiter_nobe.is_some() {
112112
let _ = comm::recv_one(waiter_nobe.unwrap());
@@ -143,7 +143,7 @@ impl Sem<~[WaitQueue]> {
143143
fn new_and_signal(count: int, num_condvars: uint)
144144
-> Sem<~[WaitQueue]> {
145145
let mut queues = ~[];
146-
for num_condvars.times {
146+
do num_condvars.times {
147147
queues.push(WaitQueue::new());
148148
}
149149
Sem::new(count, queues)
@@ -826,11 +826,11 @@ mod tests {
826826
let s2 = ~s.clone();
827827
do task::spawn || {
828828
do s2.access {
829-
for 5.times { task::yield(); }
829+
do 5.times { task::yield(); }
830830
}
831831
}
832832
do s.access {
833-
for 5.times { task::yield(); }
833+
do 5.times { task::yield(); }
834834
}
835835
}
836836
#[test]
@@ -843,7 +843,7 @@ mod tests {
843843
s2.acquire();
844844
c.send(());
845845
}
846-
for 5.times { task::yield(); }
846+
do 5.times { task::yield(); }
847847
s.release();
848848
let _ = p.recv();
849849

@@ -852,7 +852,7 @@ mod tests {
852852
let s = ~Semaphore::new(0);
853853
let s2 = ~s.clone();
854854
do task::spawn || {
855-
for 5.times { task::yield(); }
855+
do 5.times { task::yield(); }
856856
s2.release();
857857
let _ = p.recv();
858858
}
@@ -895,7 +895,7 @@ mod tests {
895895
c.send(());
896896
}
897897
let _ = p.recv(); // wait for child to come alive
898-
for 5.times { task::yield(); } // let the child contend
898+
do 5.times { task::yield(); } // let the child contend
899899
}
900900
let _ = p.recv(); // wait for child to be done
901901
}
@@ -929,7 +929,7 @@ mod tests {
929929
}
930930

931931
fn access_shared(sharedstate: &mut int, m: &Mutex, n: uint) {
932-
for n.times {
932+
do n.times {
933933
do m.lock {
934934
let oldval = *sharedstate;
935935
task::yield();
@@ -975,7 +975,7 @@ mod tests {
975975
let m = ~Mutex::new();
976976
let mut ports = ~[];
977977

978-
for num_waiters.times {
978+
do num_waiters.times {
979979
let mi = ~m.clone();
980980
let (port, chan) = comm::stream();
981981
ports.push(port);
@@ -1065,7 +1065,7 @@ mod tests {
10651065

10661066
let result: result::Result<(),()> = do task::try || {
10671067
let mut sibling_convos = ~[];
1068-
for 2.times {
1068+
do 2.times {
10691069
let (p,c) = comm::stream();
10701070
let c = Cell::new(c);
10711071
sibling_convos.push(p);
@@ -1212,7 +1212,7 @@ mod tests {
12121212

12131213
fn access_shared(sharedstate: &mut int, x: &RWLock, mode: RWLockMode,
12141214
n: uint) {
1215-
for n.times {
1215+
do n.times {
12161216
do lock_rwlock_in_mode(x, mode) {
12171217
let oldval = *sharedstate;
12181218
task::yield();
@@ -1343,7 +1343,7 @@ mod tests {
13431343
let x = ~RWLock::new();
13441344
let mut ports = ~[];
13451345

1346-
for num_waiters.times {
1346+
do num_waiters.times {
13471347
let xi = (*x).clone();
13481348
let (port, chan) = comm::stream();
13491349
ports.push(port);

src/libextra/task_pool.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ fn test_task_pool() {
102102
g
103103
};
104104
let mut pool = TaskPool::new(4, Some(SingleThreaded), f);
105-
for 8.times {
105+
do 8.times {
106106
pool.execute(|i| printfln!("Hello from thread %u!", *i));
107107
}
108108
}

src/libextra/tempfile.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
use std::os;
1515
use std::rand::RngUtil;
1616
use std::rand;
17+
use std::uint;
1718

1819
/// Attempts to make a temporary directory inside of `tmpdir` whose name will
1920
/// have the suffix `suffix`. If no directory can be created, None is returned.
2021
pub fn mkdtemp(tmpdir: &Path, suffix: &str) -> Option<Path> {
2122
let mut r = rand::rng();
22-
for 1000.times {
23+
for uint::range(0, 1000) |_| {
2324
let p = tmpdir.push(r.gen_str(16) + suffix);
2425
if os::make_dir(&p, 0x1c0) { // 700
2526
return Some(p);

src/libextra/treemap.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use std::num;
1717
use std::util::{swap, replace};
1818
use std::iterator::{FromIterator, Extendable};
19+
use std::uint;
1920

2021
// This is implemented as an AA tree, which is a simplified variation of
2122
// a red-black tree where red (horizontal) nodes can only be added
@@ -47,7 +48,7 @@ impl<K: Eq + TotalOrd, V: Eq> Eq for TreeMap<K, V> {
4748
} else {
4849
let mut x = self.iter();
4950
let mut y = other.iter();
50-
for self.len().times {
51+
for uint::range(0, self.len()) |_| {
5152
if x.next().unwrap() != y.next().unwrap() {
5253
return false
5354
}
@@ -65,7 +66,7 @@ fn lt<K: Ord + TotalOrd, V: Ord>(a: &TreeMap<K, V>,
6566
let mut y = b.iter();
6667

6768
let (a_len, b_len) = (a.len(), b.len());
68-
for num::min(a_len, b_len).times {
69+
for uint::range(0, num::min(a_len, b_len)) |_| {
6970
let (key_a, value_a) = x.next().unwrap();
7071
let (key_b, value_b) = y.next().unwrap();
7172
if *key_a < *key_b { return true; }
@@ -931,8 +932,8 @@ mod test_treemap {
931932

932933
let mut rng = rand::IsaacRng::new_seeded(&[42]);
933934

934-
for 3.times {
935-
for 90.times {
935+
do 3.times {
936+
do 90.times {
936937
let k = rng.gen();
937938
let v = rng.gen();
938939
if !ctrl.iter().any(|x| x == &(k, v)) {
@@ -943,7 +944,7 @@ mod test_treemap {
943944
}
944945
}
945946

946-
for 30.times {
947+
do 30.times {
947948
let r = rng.gen_uint_range(0, ctrl.len());
948949
let (key, _) = ctrl.remove(r);
949950
assert!(map.remove(&key));

src/librustc/middle/dataflow.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ impl<O:DataFlowOperator> DataFlowContext<O> {
189189
};
190190
if expanded {
191191
let entry = if self.oper.initial_value() { uint::max_value } else {0};
192-
for self.words_per_id.times {
192+
do self.words_per_id.times {
193193
self.gens.push(0);
194194
self.kills.push(0);
195195
self.on_entry.push(entry);

src/librustc/middle/lint.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ impl Context {
451451
if doc_hidden && self.doc_hidden {
452452
self.doc_hidden = false;
453453
}
454-
for pushed.times {
454+
do pushed.times {
455455
let (lint, lvl, src) = self.lint_stack.pop();
456456
self.set_level(lint, lvl, src);
457457
}

0 commit comments

Comments
 (0)