Skip to content

Commit 6fe7aa4

Browse files
committed
Move to blocks, rather than fn@s, in parser.rs
1 parent 7a0aee7 commit 6fe7aa4

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

src/comp/syntax/parse/parser.rs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,9 @@ fn parse_constr_arg(args: [ast::arg], p: parser) -> @ast::constr_arg {
367367
fn parse_ty_constr(fn_args: [ast::arg], p: parser) -> @ast::constr {
368368
let lo = p.get_lo_pos();
369369
let path = parse_path(p);
370-
let pf = bind parse_constr_arg(fn_args, _);
371370
let args: {node: [@ast::constr_arg], span: span} =
372-
parse_seq(token::LPAREN, token::RPAREN, some(token::COMMA), pf, p);
371+
parse_seq(token::LPAREN, token::RPAREN, some(token::COMMA),
372+
{|p| parse_constr_arg(fn_args, p)}, p);
373373
ret @spanned(lo, args.span.hi,
374374
{path: path, args: args.node, id: p.get_id()});
375375
}
@@ -386,7 +386,7 @@ fn parse_constr_in_type(p: parser) -> @ast::ty_constr {
386386
}
387387

388388

389-
fn parse_constrs<T>(pser: fn@(parser) -> @ast::constr_general<T>,
389+
fn parse_constrs<T>(pser: block(parser) -> @ast::constr_general<T>,
390390
p: parser) ->
391391
[@ast::constr_general<T>] {
392392
let constrs: [@ast::constr_general<T>] = [];
@@ -414,7 +414,8 @@ fn parse_ty_postfix(orig_t: ast::ty_, p: parser, colons_before_params: bool)
414414
} else { ret @spanned(lo, p.get_lo_pos(), orig_t); }
415415

416416
// If we're here, we have explicit type parameter instantiation.
417-
let seq = parse_seq_to_gt(some(token::COMMA), bind parse_ty(_, false), p);
417+
let seq = parse_seq_to_gt(some(token::COMMA), {|p| parse_ty(p, false)},
418+
p);
418419

419420
alt orig_t {
420421
ast::ty_path(pth, ann) {
@@ -596,7 +597,7 @@ fn parse_fn_block_arg(p: parser) -> ast::arg {
596597
}
597598

598599
fn parse_seq_to_before_gt<T>(sep: option::t<token::token>,
599-
f: fn@(parser) -> T,
600+
f: block(parser) -> T,
600601
p: parser) -> [T] {
601602
let first = true;
602603
let v = [];
@@ -612,15 +613,15 @@ fn parse_seq_to_before_gt<T>(sep: option::t<token::token>,
612613
ret v;
613614
}
614615

615-
fn parse_seq_to_gt<T>(sep: option::t<token::token>, f: fn@(parser) -> T,
616+
fn parse_seq_to_gt<T>(sep: option::t<token::token>, f: block(parser) -> T,
616617
p: parser) -> [T] {
617618
let v = parse_seq_to_before_gt(sep, f, p);
618619
expect_gt(p);
619620

620621
ret v;
621622
}
622623

623-
fn parse_seq_lt_gt<T>(sep: option::t<token::token>, f: fn@(parser) -> T,
624+
fn parse_seq_lt_gt<T>(sep: option::t<token::token>, f: block(parser) -> T,
624625
p: parser) -> spanned<[T]> {
625626
let lo = p.get_lo_pos();
626627
expect(p, token::LT);
@@ -631,15 +632,15 @@ fn parse_seq_lt_gt<T>(sep: option::t<token::token>, f: fn@(parser) -> T,
631632
}
632633

633634
fn parse_seq_to_end<T>(ket: token::token, sep: option::t<token::token>,
634-
f: fn(parser) -> T, p: parser) -> [T] {
635+
f: block(parser) -> T, p: parser) -> [T] {
635636
let val = parse_seq_to_before_end(ket, sep, f, p);
636637
p.bump();
637638
ret val;
638639
}
639640

640641
fn parse_seq_to_before_end<T>(ket: token::token,
641642
sep: option::t<token::token>,
642-
f: fn@(parser) -> T, p: parser) -> [T] {
643+
f: block(parser) -> T, p: parser) -> [T] {
643644
let first: bool = true;
644645
let v: [T] = [];
645646
while p.peek() != ket {
@@ -654,8 +655,8 @@ fn parse_seq_to_before_end<T>(ket: token::token,
654655

655656

656657
fn parse_seq<T>(bra: token::token, ket: token::token,
657-
sep: option::t<token::token>, f: fn@(parser) -> T, p: parser)
658-
-> spanned<[T]> {
658+
sep: option::t<token::token>, f: block(parser) -> T,
659+
p: parser) -> spanned<[T]> {
659660
let lo = p.get_lo_pos();
660661
expect(p, bra);
661662
let result = parse_seq_to_before_end::<T>(ket, sep, f, p);
@@ -736,7 +737,7 @@ fn parse_path_and_ty_param_substs(p: parser) -> ast::path {
736737
p.bump();
737738

738739
let seq =
739-
parse_seq_lt_gt(some(token::COMMA), bind parse_ty(_, false), p);
740+
parse_seq_lt_gt(some(token::COMMA), {|p| parse_ty(p, false)}, p);
740741
let hi = seq.span.hi;
741742
path =
742743
spanned(lo, hi,
@@ -1768,7 +1769,7 @@ fn parse_fn_decl(p: parser, purity: ast::purity, il: ast::inlineness) ->
17681769
let constrs = [];
17691770
if p.peek() == token::COLON {
17701771
p.bump();
1771-
constrs = parse_constrs(bind parse_ty_constr(inputs.node, _), p);
1772+
constrs = parse_constrs({|x| parse_ty_constr(inputs.node, x) }, p);
17721773
}
17731774
let (ret_style, ret_ty) = parse_ret_ty(p, vec::len(inputs.node));
17741775
ret {inputs: inputs.node,
@@ -2092,9 +2093,9 @@ fn parse_item_tag(p: parser, attrs: [ast::attribute]) -> @ast::item {
20922093
let vhi = p.get_hi_pos();
20932094
alt p.peek() {
20942095
token::LPAREN. {
2095-
let arg_tys =
2096-
parse_seq(token::LPAREN, token::RPAREN,
2097-
some(token::COMMA), bind parse_ty(_, false), p);
2096+
let arg_tys = parse_seq(token::LPAREN, token::RPAREN,
2097+
some(token::COMMA),
2098+
{|p| parse_ty(p, false)}, p);
20982099
for ty: @ast::ty in arg_tys.node {
20992100
args += [{ty: ty, id: p.get_id()}];
21002101
}

0 commit comments

Comments
 (0)