Skip to content

Commit d582ff6

Browse files
committed
---
yaml --- r: 5899 b: refs/heads/master c: 050170d h: refs/heads/master i: 5897: 6081da8 5895: 974fca1 v: v3
1 parent 80922e5 commit d582ff6

Some content is hidden

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

42 files changed

+127
-224
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: fd5a08384d8ff297a50220df836f31610b23cf31
2+
refs/heads/master: 050170d2af94ea81b9b964901e4de7eb79583332

trunk/src/comp/middle/trans.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4904,14 +4904,14 @@ fn trans_fn_cleanups(fcx: @fn_ctxt, cx: @block_ctxt) {
49044904
}
49054905
}
49064906

4907-
iter block_locals(b: ast::blk) -> @ast::local {
4907+
fn block_locals(b: ast::blk, it: block(@ast::local)) {
49084908
for s: @ast::stmt in b.node.stmts {
49094909
alt s.node {
49104910
ast::stmt_decl(d, _) {
49114911
alt d.node {
49124912
ast::decl_local(locals) {
49134913
for (style, local) in locals {
4914-
if style == ast::let_copy { put local; }
4914+
if style == ast::let_copy { it(local); }
49154915
}
49164916
}
49174917
_ {/* fall through */ }
@@ -5015,9 +5015,7 @@ fn trans_block(bcx: @block_ctxt, b: ast::blk) -> @block_ctxt {
50155015

50165016
fn trans_block_dps(bcx: @block_ctxt, b: ast::blk, dest: dest)
50175017
-> @block_ctxt {
5018-
for each local: @ast::local in block_locals(b) {
5019-
bcx = alloc_local(bcx, local);
5020-
}
5018+
block_locals(b) {|local| bcx = alloc_local(bcx, local); };
50215019
for s: @ast::stmt in b.node.stmts {
50225020
bcx = trans_stmt(bcx, *s);
50235021
}

trunk/src/compiletest/header.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ fn load_props(testfile: str) -> test_props {
2424
let error_patterns = [];
2525
let compile_flags = option::none;
2626
let pp_exact = option::none;
27-
for each ln: str in iter_header(testfile) {
27+
iter_header(testfile) {|ln|
2828
alt parse_error_pattern(ln) {
2929
option::some(ep) { error_patterns += [ep]; }
3030
option::none. { }
31-
}
31+
};
3232

3333
if option::is_none(compile_flags) {
3434
compile_flags = parse_compile_flags(ln);
@@ -37,7 +37,7 @@ fn load_props(testfile: str) -> test_props {
3737
if option::is_none(pp_exact) {
3838
pp_exact = parse_pp_exact(ln, testfile);
3939
}
40-
}
40+
};
4141
ret {
4242
error_patterns: error_patterns,
4343
compile_flags: compile_flags,
@@ -47,22 +47,22 @@ fn load_props(testfile: str) -> test_props {
4747

4848
fn is_test_ignored(config: config, testfile: str) -> bool {
4949
let found = false;
50-
for each ln: str in iter_header(testfile) {
50+
iter_header(testfile) {|ln|
5151
// FIXME: Can't return or break from iterator
5252
found = found || parse_name_directive(ln, "xfail-test");
5353
found = found || parse_name_directive(ln, xfail_target());
5454
if (config.mode == common::mode_pretty) {
5555
found = found || parse_name_directive(ln, "xfail-pretty");
5656
}
57-
}
57+
};
5858
ret found;
5959

6060
fn xfail_target() -> str {
6161
"xfail-" + std::os::target_os()
6262
}
6363
}
6464

65-
iter iter_header(testfile: str) -> str {
65+
fn iter_header(testfile: str, it: block(str)) {
6666
let rdr = io::file_reader(testfile);
6767
while !rdr.eof() {
6868
let ln = rdr.read_line();
@@ -73,7 +73,7 @@ iter iter_header(testfile: str) -> str {
7373
if str::starts_with(ln, "fn")
7474
|| str::starts_with(ln, "mod") {
7575
break;
76-
} else { put ln; }
76+
} else { it(ln); }
7777
}
7878
}
7979

trunk/src/fuzzer/cycles.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ type pointy = {
2323
mutable z : fn()->()
2424
};
2525

26-
iter allunder(n: uint) -> uint {
26+
fn allunder(n: uint, it: block(uint)) {
2727
let i: uint = 0u;
28-
while i < n { put i; i += 1u; }
28+
while i < n { it(i); i += 1u; }
2929
}
3030

3131
fn nopT(_x : @pointy) { }
@@ -36,20 +36,20 @@ fn test_cycles(r : rand::rng)
3636
const max : uint = 10u;
3737

3838
let v : [mutable @pointy] = [mutable];
39-
for each i in allunder(max) {
39+
allunder(max) {|i|
4040
v += [mutable @{ mutable x : no_pointy, mutable y : no_pointy, mutable z: nop }];
41-
}
41+
};
4242

43-
for each i in allunder(max) {
43+
allunder(max) {|i|
4444
v[i].x = yes_pointy(v[under(r, max)]);
4545
v[i].y = yes_pointy(v[under(r, max)]);
4646
v[i].z = bind nopT(v[under(r, max)]);
47-
}
47+
};
4848

4949
// Drop refs one at a time
50-
for each i in allunder(max) {
50+
allunder(max) {|i|
5151
v[i] = @{ mutable x : no_pointy, mutable y : no_pointy, mutable z: nop };
52-
}
52+
};
5353
}
5454

5555
fn main()

trunk/src/fuzzer/fuzzer.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,9 @@ fn replace_ty_in_crate(crate: ast::crate, i: uint, newty: ast::ty, tm: test_mode
209209
*crate2
210210
}
211211

212-
iter under(n: uint) -> uint {
212+
fn under(n: uint, it: block(uint)) {
213213
let i: uint = 0u;
214-
while i < n { put i; i += 1u; }
214+
while i < n { it(i); i += 1u; }
215215
}
216216

217217
fn devnull() -> io::writer { std::io::string_writer().get_writer() }
@@ -245,9 +245,9 @@ fn check_variants_T<@T>(
245245
let L = vec::len(things);
246246

247247
if L < 100u {
248-
for each i: uint in under(uint::min(L, 20u)) {
248+
under(uint::min(L, 20u)) {|i|
249249
log_err "Replacing... #" + uint::str(i);
250-
for each j: uint in under(uint::min(L, 30u)) {
250+
under(uint::min(L, 30u)) {|j|
251251
log_err "With... " + stringifier(@things[j]);
252252
let crate2 = @replacer(crate, i, things[j], cx.mode);
253253
// It would be best to test the *crate* for stability, but testing the
@@ -267,8 +267,8 @@ fn check_variants_T<@T>(
267267
check_whole_compiler(str3, file_label, safe_to_run);
268268
}
269269
}
270-
}
271-
}
270+
};
271+
};
272272
}
273273
}
274274

trunk/src/fuzzer/ivec_fuzz.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ fn vec_insert<@T>(v: [T], i: uint, x: T) -> [T] {
4242
}
4343

4444
// Iterates over 0...length, skipping the specified number on each side.
45-
iter ix(skip_low: uint, skip_high: uint, length: uint) -> uint {
45+
fn ix(skip_low: uint, skip_high: uint, length: uint, it: block(uint)) {
4646
let i: uint = skip_low;
47-
while i + skip_high <= length { put i; i += 1u; }
47+
while i + skip_high <= length { it(i); i += 1u; }
4848
}
4949

5050
// Returns a bunch of modified versions of v, some of which introduce new elements (borrowed from xs).
@@ -60,20 +60,20 @@ fn vec_edits<@T>(v: [T], xs: [T]) -> [[T]] {
6060
// When Lv == 2u, this is redundant with swap.
6161
edits += [vec::reversed(v)];
6262
}
63-
for each i: uint in ix(0u, 1u, Lv) { edits += [vec_omit(v, i)]; }
64-
for each i: uint in ix(0u, 1u, Lv) { edits += [vec_dup(v, i)]; }
65-
for each i: uint in ix(0u, 2u, Lv) { edits += [vec_swadj(v, i)]; }
66-
for each i: uint in ix(1u, 2u, Lv) { edits += [vec_prefix(v, i)]; }
67-
for each i: uint in ix(2u, 1u, Lv) { edits += [vec_suffix(v, i)]; }
68-
69-
for each j: uint in ix(0u, 1u, len(xs)) {
70-
for each i: uint in ix(0u, 1u, Lv) {
63+
ix(0u, 1u, Lv) {|i| edits += [vec_omit(v, i)]; };
64+
ix(0u, 1u, Lv) {|i| edits += [vec_dup(v, i)]; };
65+
ix(0u, 2u, Lv) {|i| edits += [vec_swadj(v, i)]; };
66+
ix(1u, 2u, Lv) {|i| edits += [vec_prefix(v, i)]; };
67+
ix(2u, 1u, Lv) {|i| edits += [vec_suffix(v, i)]; };
68+
69+
ix(0u, 1u, len(xs)) {|j|
70+
ix(0u, 1u, Lv) {|i|
7171
edits += [vec_poke(v, i, xs[j])];
72-
}
73-
for each i: uint in ix(0u, 0u, Lv) {
72+
};
73+
ix(0u, 0u, Lv) {|i|
7474
edits += [vec_insert(v, i, xs[j])];
75-
}
76-
}
75+
};
76+
};
7777

7878
edits
7979
}
@@ -93,7 +93,7 @@ fn vec_to_str(v: [int]) -> str {
9393
fn show_edits(a: [int], xs: [int]) {
9494
log_err "=== Edits of " + vec_to_str(a) + " ===";
9595
let b = vec_edits(a, xs);
96-
for each i: uint in ix(0u, 1u, len(b)) { log_err vec_to_str(b[i]); }
96+
ix(0u, 1u, len(b)) {|i| log_err vec_to_str(b[i]); };
9797
}
9898

9999
fn demo_edits() {

trunk/src/test/bench/99bob-iter.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,17 @@ fn sub(t: str, n: int) -> str {
4040

4141

4242
/* Using an interator */
43-
iter ninetynine() -> int { let n: int = 100; while n > 1 { n -= 1; put n; } }
43+
fn ninetynine(it: block(int)) {
44+
let n: int = 100;
45+
while n > 1 { n -= 1; it(n); }
46+
}
4447

4548
fn main() {
46-
for each n: int in ninetynine() {
49+
ninetynine {|n|
4750
log sub(b1(), n);
4851
log sub(b2(), n - 1);
4952
log "";
50-
}
53+
};
5154
log b7();
5255
log b8();
5356
}

trunk/src/test/bench/shootout-fasta.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,21 @@ fn make_random_fasta(id: str, desc: str, genelist: [aminoacids], n: int) {
4747
log ">" + id + " " + desc;
4848
let rng = myrandom(std::rand::mk_rng().next());
4949
let op: str = "";
50-
for each i: uint in uint::range(0u, n as uint) {
50+
uint::range(0u, n as uint) {|i|
5151
str::push_byte(op, select_random(rng.next(100u32), genelist) as u8);
5252
if str::byte_len(op) >= LINE_LENGTH() { log op; op = ""; }
53-
}
53+
};
5454
if str::byte_len(op) > 0u { log op; }
5555
}
5656

5757
fn make_repeat_fasta(id: str, desc: str, s: str, n: int) {
5858
log ">" + id + " " + desc;
5959
let op: str = "";
6060
let sl: uint = str::byte_len(s);
61-
for each i: uint in uint::range(0u, n as uint) {
61+
uint::range(0u, n as uint) {|i|
6262
str::push_byte(op, s[i % sl]);
6363
if str::byte_len(op) >= LINE_LENGTH() { log op; op = ""; }
64-
}
64+
};
6565
if str::byte_len(op) > 0u { log op; }
6666
}
6767

trunk/src/test/bench/shootout-pfib.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// -*- rust -*-
2+
// xfail-pretty
23

34
/*
45
A parallel version of fibonacci numbers.
@@ -74,9 +75,9 @@ fn stress_task(&&id: int) {
7475

7576
fn stress(num_tasks: int) {
7677
let tasks = [];
77-
for each i: int in range(0, num_tasks) {
78+
range(0, num_tasks) {|i|
7879
tasks += [task::spawn_joinable(copy i, stress_task)];
79-
}
80+
};
8081
for t in tasks { task::join(t); }
8182
}
8283

@@ -98,8 +99,8 @@ fn main(argv: [str]) {
9899

99100
let out = io::stdout();
100101

101-
for each n: int in range(1, max + 1) {
102-
for each i: int in range(0, num_trials) {
102+
range(1, max + 1) {|n|
103+
range(0, num_trials) {|i|
103104
let start = time::precise_time_ns();
104105
let fibn = fib(n);
105106
let stop = time::precise_time_ns();
@@ -108,8 +109,8 @@ fn main(argv: [str]) {
108109

109110
out.write_line(#fmt["%d\t%d\t%s", n, fibn,
110111
u64::str(elapsed)]);
111-
}
112-
}
112+
};
113+
};
113114
}
114115
}
115116
}

trunk/src/test/bench/task-perf-vector-party.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ import std::str;
1010
import std::task;
1111

1212
fn f(&&n: uint) {
13-
for each i in uint::range(0u, n) {
13+
uint::range(0u, n) {|i|
1414
let v: [u8] = [];
1515
vec::reserve(v, 1000u);
16-
}
16+
};
1717
}
1818

1919
fn main(args: [str]) {
2020
let n =
2121
if vec::len(args) < 2u {
2222
100u
2323
} else { uint::parse_buf(str::bytes(args[1]), 10u) };
24-
for each i in uint::range(0u, 100u) { task::spawn(copy n, f); }
24+
uint::range(0u, 100u) {|i| task::spawn(copy n, f); };
2525
}

trunk/src/test/bench/task-perf-word-count.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,7 @@ mod map_reduce {
100100

101101
map(input, bind emit(intermediates, ctrl, _, _));
102102

103-
for each kv: @{key: str, val: chan<reduce_proto>} in
104-
intermediates.items() {
105-
send(kv.val, release);
106-
}
103+
intermediates.values {|v| send(v, release); };
107104

108105
send(ctrl, mapper_done);
109106
}
@@ -181,10 +178,7 @@ mod map_reduce {
181178
}
182179
}
183180

184-
for each kv: @{key: str, val: chan<reduce_proto>} in reducers.items()
185-
{
186-
send(kv.val, done);
187-
}
181+
reducers.values {|v| send(v, done); };
188182

189183
for t in tasks { task::join(t); }
190184
}

trunk/src/test/compile-fail/fn-as-iter.rs

Lines changed: 0 additions & 3 deletions
This file was deleted.

trunk/src/test/compile-fail/for-each-over-bs.rs

Lines changed: 0 additions & 2 deletions
This file was deleted.

trunk/src/test/compile-fail/for-loop-decl.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ fn bitv_to_str(enclosing: fn_info, v: bitv::t) -> str {
1010
let s = "";
1111

1212
// error is that the value type in the hash map is var_info, not a box
13-
for each p: @{key: uint, val: @uint} in enclosing.vars.items() {
14-
if bitv::get(v, *p.val) { s += "foo"; }
15-
}
13+
enclosing.vars.values {|val|
14+
if bitv::get(v, val) { s += "foo"; }
15+
};
1616
ret s;
1717
}
1818

trunk/src/test/compile-fail/iter-as-fn.rs

Lines changed: 0 additions & 3 deletions
This file was deleted.

trunk/src/test/compile-fail/put-in-fn.rs

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// error-pattern:moop
22
use std;
33
import std::uint;
4-
fn main() { for each i: uint in uint::range(0u, 10u) { fail "moop"; } }
4+
fn main() { uint::range(0u, 10u) {|_i| fail "moop"; } }

0 commit comments

Comments
 (0)