@@ -367,9 +367,9 @@ fn parse_constr_arg(args: [ast::arg], p: parser) -> @ast::constr_arg {
367
367
fn parse_ty_constr ( fn_args : [ ast:: arg ] , p : parser ) -> @ast:: constr {
368
368
let lo = p. get_lo_pos ( ) ;
369
369
let path = parse_path ( p) ;
370
- let pf = bind parse_constr_arg ( fn_args, _) ;
371
370
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) ;
373
373
ret @spanned ( lo, args. span . hi ,
374
374
{ path: path, args: args. node , id: p. get_id ( ) } ) ;
375
375
}
@@ -386,7 +386,7 @@ fn parse_constr_in_type(p: parser) -> @ast::ty_constr {
386
386
}
387
387
388
388
389
- fn parse_constrs < T > ( pser : fn @ ( parser ) -> @ast:: constr_general < T > ,
389
+ fn parse_constrs < T > ( pser : block ( parser ) -> @ast:: constr_general < T > ,
390
390
p : parser ) ->
391
391
[ @ast:: constr_general < T > ] {
392
392
let constrs: [ @ast:: constr_general < T > ] = [ ] ;
@@ -414,7 +414,8 @@ fn parse_ty_postfix(orig_t: ast::ty_, p: parser, colons_before_params: bool)
414
414
} else { ret @spanned ( lo, p. get_lo_pos ( ) , orig_t) ; }
415
415
416
416
// 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) ;
418
419
419
420
alt orig_t {
420
421
ast : : ty_path ( pth, ann) {
@@ -596,7 +597,7 @@ fn parse_fn_block_arg(p: parser) -> ast::arg {
596
597
}
597
598
598
599
fn parse_seq_to_before_gt < T > ( sep : option:: t < token:: token > ,
599
- f : fn @ ( parser ) -> T ,
600
+ f : block ( parser ) -> T ,
600
601
p : parser ) -> [ T ] {
601
602
let first = true ;
602
603
let v = [ ] ;
@@ -612,15 +613,15 @@ fn parse_seq_to_before_gt<T>(sep: option::t<token::token>,
612
613
ret v;
613
614
}
614
615
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 ,
616
617
p : parser ) -> [ T ] {
617
618
let v = parse_seq_to_before_gt ( sep, f, p) ;
618
619
expect_gt ( p) ;
619
620
620
621
ret v;
621
622
}
622
623
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 ,
624
625
p : parser ) -> spanned < [ T ] > {
625
626
let lo = p. get_lo_pos ( ) ;
626
627
expect ( p, token:: LT ) ;
@@ -631,15 +632,15 @@ fn parse_seq_lt_gt<T>(sep: option::t<token::token>, f: fn@(parser) -> T,
631
632
}
632
633
633
634
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 ] {
635
636
let val = parse_seq_to_before_end ( ket, sep, f, p) ;
636
637
p. bump ( ) ;
637
638
ret val;
638
639
}
639
640
640
641
fn parse_seq_to_before_end < T > ( ket : token:: token ,
641
642
sep : option:: t < token:: token > ,
642
- f : fn @ ( parser ) -> T , p : parser ) -> [ T ] {
643
+ f : block ( parser ) -> T , p : parser ) -> [ T ] {
643
644
let first: bool = true ;
644
645
let v: [ T ] = [ ] ;
645
646
while p. peek ( ) != ket {
@@ -654,8 +655,8 @@ fn parse_seq_to_before_end<T>(ket: token::token,
654
655
655
656
656
657
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 ] > {
659
660
let lo = p. get_lo_pos ( ) ;
660
661
expect ( p, bra) ;
661
662
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 {
736
737
p. bump ( ) ;
737
738
738
739
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) ;
740
741
let hi = seq. span . hi ;
741
742
path =
742
743
spanned ( lo, hi,
@@ -1768,7 +1769,7 @@ fn parse_fn_decl(p: parser, purity: ast::purity, il: ast::inlineness) ->
1768
1769
let constrs = [ ] ;
1769
1770
if p. peek ( ) == token:: COLON {
1770
1771
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) ;
1772
1773
}
1773
1774
let ( ret_style, ret_ty) = parse_ret_ty ( p, vec:: len ( inputs. node ) ) ;
1774
1775
ret { inputs : inputs. node ,
@@ -2092,9 +2093,9 @@ fn parse_item_tag(p: parser, attrs: [ast::attribute]) -> @ast::item {
2092
2093
let vhi = p. get_hi_pos ( ) ;
2093
2094
alt p. peek ( ) {
2094
2095
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) ;
2098
2099
for ty: @ast:: ty in arg_tys. node {
2099
2100
args += [ { ty: ty, id: p. get_id ( ) } ] ;
2100
2101
}
0 commit comments