Skip to content

Commit 5e13d19

Browse files
committed
s/block()/fn()/g
1 parent 04351a8 commit 5e13d19

Some content is hidden

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

79 files changed

+152
-155
lines changed

src/cargo/cargo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ fn configure() -> cargo {
349349
c
350350
}
351351

352-
fn for_each_package(c: cargo, b: block(source, package)) {
352+
fn for_each_package(c: cargo, b: fn(source, package)) {
353353
c.sources.values({ |v|
354354
for p in copy v.packages {
355355
b(v, p);

src/comp/metadata/cstore.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ fn have_crate_data(cstore: cstore, cnum: ast::crate_num) -> bool {
9393
ret p(cstore).metas.contains_key(cnum);
9494
}
9595

96-
fn iter_crate_data(cstore: cstore, i: block(ast::crate_num, crate_metadata)) {
96+
fn iter_crate_data(cstore: cstore, i: fn(ast::crate_num, crate_metadata)) {
9797
p(cstore).metas.items {|k,v| i(k, v);};
9898
}
9999

src/comp/metadata/decoder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ fn list_crate_items(bytes: @[u8], md: ebml::doc, out: io::writer) {
460460
out.write_str("\n");
461461
}
462462

463-
fn iter_crate_items(bytes: @[u8], proc: block(str, ast::def_id)) {
463+
fn iter_crate_items(bytes: @[u8], proc: fn(str, ast::def_id)) {
464464
let md = ebml::new_doc(bytes);
465465
let paths = ebml::get_doc(md, tag_paths);
466466
let index = ebml::get_doc(paths, tag_index);

src/comp/metadata/encoder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ fn create_index<T: copy>(index: [entry<T>], hash_fn: fn@(T) -> uint) ->
486486
}
487487

488488
fn encode_index<T>(ebml_w: ebml::writer, buckets: [@[entry<T>]],
489-
write_fn: block(io::writer, T)) {
489+
write_fn: fn(io::writer, T)) {
490490
let writer = ebml_w.writer;
491491
ebml::start_tag(ebml_w, tag_index);
492492
let bucket_locs: [uint] = [];

src/comp/metadata/tydecode.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export parse_bounds_data;
1616
// data buffer. Whatever format you choose should not contain pipe characters.
1717

1818
// Callback to translate defs to strs or back:
19-
type conv_did = block(ast::def_id) -> ast::def_id;
19+
type conv_did = fn(ast::def_id) -> ast::def_id;
2020

2121
type pstate = {data: @[u8], crate: int, mutable pos: uint, tcx: ty::ctxt};
2222

@@ -138,7 +138,7 @@ fn parse_ty_constr_arg(st: @pstate) -> ast::constr_arg_general_<@path> {
138138
}
139139

140140
fn parse_constr<T: copy>(st: @pstate, conv: conv_did,
141-
pser: block(@pstate) -> ast::constr_arg_general_<T>)
141+
pser: fn(@pstate) -> ast::constr_arg_general_<T>)
142142
-> @ty::constr_general<T> {
143143
let sp = ast_util::dummy_sp(); // FIXME: use a real span
144144
let args: [@sp_constr_arg<T>] = [];

src/comp/middle/alias.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ fn check_if(c: @ast::expr, then: ast::blk, els: option::t<@ast::expr>,
436436
*sc.invalid = append_invalid(*sc.invalid, then_invalid, orig_invalid);
437437
}
438438

439-
fn check_loop(cx: ctx, sc: scope, checker: block()) {
439+
fn check_loop(cx: ctx, sc: scope, checker: fn()) {
440440
let orig_invalid = filter_invalid(*sc.invalid, sc.bs);
441441
checker();
442442
let new_invalid = filter_invalid(*sc.invalid, sc.bs);

src/comp/middle/debuginfo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ fn md_from_metadata<T>(val: debug_metadata) -> T unsafe {
140140
}
141141

142142
fn cached_metadata<T: copy>(cache: metadata_cache, mdtag: int,
143-
eq: block(md: T) -> bool) -> option::t<T> unsafe {
143+
eq: fn(md: T) -> bool) -> option::t<T> unsafe {
144144
if cache.contains_key(mdtag) {
145145
let items = cache.get(mdtag);
146146
for item in items {

src/comp/middle/kind.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ fn check_crate(tcx: ty::ctxt, method_map: typeck::method_map,
5858
// variables. `id` is the node_id for some expression that creates the
5959
// closure.
6060
fn with_appropriate_checker(cx: ctx, id: node_id,
61-
b: block(fn@(ctx, ty::t, sp: span))) {
61+
b: fn(fn@(ctx, ty::t, sp: span))) {
6262
let fty = ty::node_id_to_monotype(cx.tcx, id);
6363
alt ty::ty_fn_proto(cx.tcx, fty) {
6464
proto_uniq { b(check_send); }

src/comp/middle/last_use.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ fn visit_fn(fk: visit::fn_kind, decl: fn_decl, body: blk,
203203
}
204204
}
205205

206-
fn visit_block(tp: block_type, cx: ctx, visit: block()) {
206+
fn visit_block(tp: block_type, cx: ctx, visit: fn()) {
207207
let local = @{type: tp, mutable second: false, mutable exits: []};
208208
cx.blocks = cons(local, @cx.blocks);
209209
visit();

src/comp/middle/lint.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ impl opt_ for option {
2626
}
2727

2828
// FIXME: Copied from driver.rs, to work around a bug(#1566)
29-
fn time(do_it: bool, what: str, thunk: block()) {
29+
fn time(do_it: bool, what: str, thunk: fn()) {
3030
if !do_it{ ret thunk(); }
3131
let start = std::time::precise_time_s();
3232
thunk();

src/comp/middle/pat_util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ fn pat_id_map(tcx: ty::ctxt, pat: @pat) -> pat_id_map {
9191
// This does *not* normalize. The pattern should be already normalized
9292
// if you want to get a normalized pattern out of it.
9393
// Could return a constrained type in order to express that (future work)
94-
fn pat_bindings(pat: @pat, it: block(@pat)) {
94+
fn pat_bindings(pat: @pat, it: fn(@pat)) {
9595
alt pat.node {
9696
pat_ident(_, option::none) { it(pat); }
9797
pat_ident(_, option::some(sub)) { it(pat); pat_bindings(sub, it); }

src/comp/middle/resolve.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@ fn resolve_constr(e: @env, c: @ast::constr, sc: scopes, _v: vt<scopes>) {
632632
fn resolve_import(e: env, defid: ast::def_id, name: ast::ident,
633633
ids: [ast::ident], sp: codemap::span, sc: scopes) {
634634
fn register(e: env, id: node_id, cx: ctxt, sp: codemap::span,
635-
name: ast::ident, lookup: block(namespace) -> option::t<def>,
635+
name: ast::ident, lookup: fn(namespace) -> option::t<def>,
636636
impls: [@_impl]) {
637637
let val = lookup(ns_val(ns_any_value)), typ = lookup(ns_type),
638638
md = lookup(ns_module);
@@ -1712,7 +1712,7 @@ fn add_name(ch: checker, sp: span, name: ident) {
17121712

17131713
fn ident_id(&&i: ident) -> ident { ret i; }
17141714

1715-
fn ensure_unique<T>(e: env, sp: span, elts: [T], id: block(T) -> ident,
1715+
fn ensure_unique<T>(e: env, sp: span, elts: [T], id: fn(T) -> ident,
17161716
kind: str) {
17171717
let ch = checker(e, kind);
17181718
for elt: T in elts { add_name(ch, sp, id(elt)); }

src/comp/middle/trans.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3233,8 +3233,8 @@ fn invoke_full(bcx: @block_ctxt, llfn: ValueRef, llargs: [ValueRef],
32333233
fn invoke_(bcx: @block_ctxt, llfn: ValueRef, llargs: [ValueRef],
32343234
to_zero: [{v: ValueRef, t: ty::t}],
32353235
to_revoke: [{v: ValueRef, t: ty::t}],
3236-
invoker: block(@block_ctxt, ValueRef, [ValueRef],
3237-
BasicBlockRef, BasicBlockRef)) -> @block_ctxt {
3236+
invoker: fn(@block_ctxt, ValueRef, [ValueRef],
3237+
BasicBlockRef, BasicBlockRef)) -> @block_ctxt {
32383238
// FIXME: May be worth turning this into a plain call when there are no
32393239
// cleanups to run
32403240
if bcx.unreachable { ret bcx; }
@@ -4106,7 +4106,7 @@ fn trans_fn_cleanups(fcx: @fn_ctxt, cx: @block_ctxt) {
41064106
}
41074107
}
41084108

4109-
fn block_locals(b: ast::blk, it: block(@ast::local)) {
4109+
fn block_locals(b: ast::blk, it: fn(@ast::local)) {
41104110
for s: @ast::stmt in b.node.stmts {
41114111
alt s.node {
41124112
ast::stmt_decl(d, _) {
@@ -4423,7 +4423,7 @@ enum self_arg { impl_self(ty::t), no_self, }
44234423
fn trans_closure(cx: @local_ctxt, sp: span, decl: ast::fn_decl,
44244424
body: ast::blk, llfndecl: ValueRef,
44254425
ty_self: self_arg, ty_params: [ast::ty_param],
4426-
id: ast::node_id, maybe_load_env: block(@fn_ctxt)) {
4426+
id: ast::node_id, maybe_load_env: fn(@fn_ctxt)) {
44274427
set_uwtable(llfndecl);
44284428

44294429
// Set up arguments to the function.

src/comp/middle/trans_closure.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ import shape::{size_of};
5757
// closure is allocated in the task heap and is reference counted.
5858
// For a block, the closure is allocated on the stack. Note that in
5959
// all cases we allocate space for a ref count just to make our lives
60-
// easier when upcasting to block(T)->U, in the shape code, and so
60+
// easier when upcasting to fn(T)->U, in the shape code, and so
6161
// forth.
6262
//
6363
// ## Opaque Closures ##
@@ -637,7 +637,7 @@ fn trans_bind_1(cx: @block_ctxt, outgoing_fty: ty::t,
637637
fn make_null_test(
638638
in_bcx: @block_ctxt,
639639
ptr: ValueRef,
640-
blk: block(@block_ctxt) -> @block_ctxt)
640+
blk: fn(@block_ctxt) -> @block_ctxt)
641641
-> @block_ctxt {
642642
let not_null_bcx = new_sub_block_ctxt(in_bcx, "not null");
643643
let next_bcx = new_sub_block_ctxt(in_bcx, "next");

src/comp/middle/trans_impl.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ fn trans_vtable(ccx: @crate_ctxt, id: ast::node_id, name: str,
157157
}
158158

159159
fn trans_wrapper(ccx: @crate_ctxt, pt: [ast::ident], llfty: TypeRef,
160-
fill: block(ValueRef, @block_ctxt) -> @block_ctxt)
160+
fill: fn(ValueRef, @block_ctxt) -> @block_ctxt)
161161
-> ValueRef {
162162
let lcx = @{path: pt, module_path: [], ccx: ccx};
163163
let name = link::mangle_internal_name_by_path(ccx, pt);

src/comp/middle/trans_vec.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ fn trans_add(bcx: @block_ctxt, vec_ty: ty::t, lhs: ValueRef,
258258

259259
type val_and_ty_fn = fn@(@block_ctxt, ValueRef, ty::t) -> result;
260260

261-
type iter_vec_block = block(@block_ctxt, ValueRef, ty::t) -> @block_ctxt;
261+
type iter_vec_block = fn(@block_ctxt, ValueRef, ty::t) -> @block_ctxt;
262262

263263
fn iter_vec_raw(bcx: @block_ctxt, vptr: ValueRef, vec_ty: ty::t,
264264
fill: ValueRef, f: iter_vec_block) -> @block_ctxt {

src/comp/middle/tstate/auxiliary.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,7 @@ fn non_init_constraint_mentions(_fcx: fn_ctxt, c: norm_constraint, v: node_id)
968968
}
969969

970970
fn args_mention<T>(args: [@constr_arg_use],
971-
q: block([T], node_id) -> bool,
971+
q: fn([T], node_id) -> bool,
972972
s: [T]) -> bool {
973973
/*
974974
FIXME

src/comp/middle/ty.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,7 +1083,7 @@ fn type_is_native(cx: ctxt, ty: t) -> bool {
10831083
alt struct(cx, ty) { ty_native(_) { ret true; } _ { ret false; } }
10841084
}
10851085

1086-
fn type_structurally_contains(cx: ctxt, ty: t, test: block(sty) -> bool) ->
1086+
fn type_structurally_contains(cx: ctxt, ty: t, test: fn(sty) -> bool) ->
10871087
bool {
10881088
let sty = struct(cx, ty);
10891089
if test(sty) { ret true; }
@@ -1420,7 +1420,7 @@ fn hash_type_structure(st: sty) -> uint {
14201420

14211421
fn hash_raw_ty(&&rt: @raw_t) -> uint { ret rt.hash; }
14221422

1423-
fn arg_eq<T>(eq: block(T, T) -> bool,
1423+
fn arg_eq<T>(eq: fn(T, T) -> bool,
14241424
a: @sp_constr_arg<T>,
14251425
b: @sp_constr_arg<T>)
14261426
-> bool {
@@ -1439,7 +1439,7 @@ fn arg_eq<T>(eq: block(T, T) -> bool,
14391439
}
14401440
}
14411441

1442-
fn args_eq<T>(eq: block(T, T) -> bool,
1442+
fn args_eq<T>(eq: fn(T, T) -> bool,
14431443
a: [@sp_constr_arg<T>],
14441444
b: [@sp_constr_arg<T>]) -> bool {
14451445
let i: uint = 0u;
@@ -1930,7 +1930,6 @@ mod unify {
19301930
fn sub_proto(p_sub: ast::proto, p_sup: ast::proto) -> bool {
19311931
ret alt (p_sub, p_sup) {
19321932
(_, ast::proto_any) { true }
1933-
(_, ast::proto_block) { true } /* NDM temporary */
19341933
(ast::proto_bare, _) { true }
19351934

19361935
// Equal prototypes are always subprotos:
@@ -2083,7 +2082,7 @@ mod unify {
20832082
}
20842083

20852084
fn unify_tps(cx: @ctxt, expected_tps: [t], actual_tps: [t],
2086-
variance: variance, finish: block([t]) -> result) -> result {
2085+
variance: variance, finish: fn([t]) -> result) -> result {
20872086
let result_tps = [], i = 0u;
20882087
for exp in expected_tps {
20892088
let act = actual_tps[i];

src/comp/syntax/ext/simplext.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ fn follow_for_trans(cx: ext_ctxt, mmaybe: option::t<arb_depth<matchable>>,
241241
}
242242

243243
/* helper for transcribe_exprs: what vars from `b` occur in `e`? */
244-
fn free_vars(b: bindings, e: @expr, it: block(ident)) {
244+
fn free_vars(b: bindings, e: @expr, it: fn(ident)) {
245245
let idents: hashmap<ident, ()> = new_str_hash::<()>();
246246
fn mark_ident(&&i: ident, _fld: ast_fold, b: bindings,
247247
idents: hashmap<ident, ()>) -> ident {
@@ -536,7 +536,7 @@ fn block_to_ident(blk: blk_) -> option::t<ident> {
536536

537537
fn p_t_s_r_mac(cx: ext_ctxt, mac: ast::mac, s: selector, b: binders) {
538538
fn select_pt_1(cx: ext_ctxt, m: matchable,
539-
fn_m: block(ast::mac) -> match_result) -> match_result {
539+
fn_m: fn(ast::mac) -> match_result) -> match_result {
540540
ret alt m {
541541
match_expr(e) {
542542
alt e.node { expr_mac(mac) { fn_m(mac) } _ { none } }

src/comp/syntax/parse/parser.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ fn bad_expr_word_table() -> hashmap<str, ()> {
149149
for word in ["mod", "if", "else", "while", "do", "alt", "for", "break",
150150
"cont", "ret", "be", "fail", "type", "resource", "check",
151151
"assert", "claim", "native", "fn", "pure",
152-
"unsafe", "block", "import", "export", "let", "const",
152+
"unsafe", "import", "export", "let", "const",
153153
"log", "copy", "sendfn", "impl", "iface", "enum"] {
154154
words.insert(word, ());
155155
}
@@ -366,7 +366,7 @@ fn parse_constr_in_type(p: parser) -> @ast::ty_constr {
366366
}
367367

368368

369-
fn parse_constrs<T: copy>(pser: block(parser) -> @ast::constr_general<T>,
369+
fn parse_constrs<T: copy>(pser: fn(parser) -> @ast::constr_general<T>,
370370
p: parser) ->
371371
[@ast::constr_general<T>] {
372372
let constrs: [@ast::constr_general<T>] = [];
@@ -504,9 +504,6 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty {
504504
_ { /* fallthrough */ }
505505
}
506506
t = parse_ty_fn(proto, p);
507-
} else if eat_word(p, "block") {
508-
//p.warn("block is deprecated, use fn& or fn");
509-
t = parse_ty_fn(ast::proto_block, p);
510507
} else if eat_word(p, "native") {
511508
expect_word(p, "fn");
512509
t = parse_ty_fn(ast::proto_bare, p);
@@ -545,7 +542,7 @@ fn parse_fn_block_arg(p: parser) -> ast::arg {
545542
}
546543

547544
fn parse_seq_to_before_gt<T: copy>(sep: option::t<token::token>,
548-
f: block(parser) -> T,
545+
f: fn(parser) -> T,
549546
p: parser) -> [T] {
550547
let first = true;
551548
let v = [];
@@ -562,15 +559,15 @@ fn parse_seq_to_before_gt<T: copy>(sep: option::t<token::token>,
562559
}
563560

564561
fn parse_seq_to_gt<T: copy>(sep: option::t<token::token>,
565-
f: block(parser) -> T, p: parser) -> [T] {
562+
f: fn(parser) -> T, p: parser) -> [T] {
566563
let v = parse_seq_to_before_gt(sep, f, p);
567564
expect_gt(p);
568565

569566
ret v;
570567
}
571568

572569
fn parse_seq_lt_gt<T: copy>(sep: option::t<token::token>,
573-
f: block(parser) -> T,
570+
f: fn(parser) -> T,
574571
p: parser) -> spanned<[T]> {
575572
let lo = p.span.lo;
576573
expect(p, token::LT);
@@ -581,7 +578,7 @@ fn parse_seq_lt_gt<T: copy>(sep: option::t<token::token>,
581578
}
582579

583580
fn parse_seq_to_end<T: copy>(ket: token::token, sep: seq_sep,
584-
f: block(parser) -> T, p: parser) -> [T] {
581+
f: fn(parser) -> T, p: parser) -> [T] {
585582
let val = parse_seq_to_before_end(ket, sep, f, p);
586583
p.bump();
587584
ret val;
@@ -604,7 +601,7 @@ fn seq_sep_none() -> seq_sep {
604601

605602
fn parse_seq_to_before_end<T: copy>(ket: token::token,
606603
sep: seq_sep,
607-
f: block(parser) -> T, p: parser) -> [T] {
604+
f: fn(parser) -> T, p: parser) -> [T] {
608605
let first: bool = true;
609606
let v: [T] = [];
610607
while p.token != ket {
@@ -620,7 +617,7 @@ fn parse_seq_to_before_end<T: copy>(ket: token::token,
620617

621618

622619
fn parse_seq<T: copy>(bra: token::token, ket: token::token,
623-
sep: seq_sep, f: block(parser) -> T,
620+
sep: seq_sep, f: fn(parser) -> T,
624621
p: parser) -> spanned<[T]> {
625622
let lo = p.span.lo;
626623
expect(p, bra);
@@ -813,9 +810,6 @@ fn parse_bottom_expr(p: parser) -> pexpr {
813810
_ { /* fallthrough */ }
814811
}
815812
ret pexpr(parse_fn_expr(p, proto));
816-
} else if eat_word(p, "block") {
817-
p.warn("block is deprecated, use fn& or fn");
818-
ret pexpr(parse_fn_expr(p, ast::proto_block));
819813
} else if eat_word(p, "unchecked") {
820814
ret pexpr(parse_block_expr(p, lo, ast::unchecked_blk));
821815
} else if eat_word(p, "unsafe") {

src/comp/syntax/print/pprust.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ fn synth_comment(s: ps, text: str) {
210210
word(s.s, "*/");
211211
}
212212

213-
fn commasep<IN>(s: ps, b: breaks, elts: [IN], op: block(ps, IN)) {
213+
fn commasep<IN>(s: ps, b: breaks, elts: [IN], op: fn(ps, IN)) {
214214
box(s, 0u, b);
215215
let first = true;
216216
for elt: IN in elts {
@@ -221,8 +221,8 @@ fn commasep<IN>(s: ps, b: breaks, elts: [IN], op: block(ps, IN)) {
221221
}
222222

223223

224-
fn commasep_cmnt<IN>(s: ps, b: breaks, elts: [IN], op: block(ps, IN),
225-
get_span: block(IN) -> codemap::span) {
224+
fn commasep_cmnt<IN>(s: ps, b: breaks, elts: [IN], op: fn(ps, IN),
225+
get_span: fn(IN) -> codemap::span) {
226226
box(s, 0u, b);
227227
let len = vec::len::<IN>(elts);
228228
let i = 0u;

src/comp/util/filesearch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export relative_target_lib_path;
1818
export get_cargo_root;
1919
export libdir;
2020

21-
type pick<T> = block(path: fs::path) -> option::t<T>;
21+
type pick<T> = fn(path: fs::path) -> option::t<T>;
2222

2323
fn pick_file(file: fs::path, path: fs::path) -> option::t<fs::path> {
2424
if fs::basename(path) == file { option::some(path) }

src/compiletest/header.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ fn is_test_ignored(config: config, testfile: str) -> bool {
6363
}
6464
}
6565

66-
fn iter_header(testfile: str, it: block(str)) {
66+
fn iter_header(testfile: str, it: fn(str)) {
6767
let rdr = result::get(io::file_reader(testfile));
6868
while !rdr.eof() {
6969
let ln = rdr.read_line();

0 commit comments

Comments
 (0)