@@ -567,7 +567,8 @@ fn parse_arg(p: parser) -> ast::arg {
567
567
fn parse_fn_block_arg ( p : parser ) -> ast:: arg {
568
568
let m = parse_arg_mode ( p) ;
569
569
let i = parse_value_ident ( p) ;
570
- let t = @spanned ( p. get_lo_pos ( ) , p. get_hi_pos ( ) , ast:: ty_infer) ;
570
+ let t = eat ( p, token:: COLON ) ? parse_ty( p, false ) :
571
+ @spanned( p. get_lo_pos ( ) , p. get_hi_pos ( ) , ast:: ty_infer) ;
571
572
ret { mode : m, ty : t, ident : i, id : p. get_id ( ) } ;
572
573
}
573
574
@@ -1747,16 +1748,13 @@ fn parse_fn_decl(p: parser, purity: ast::purity, il: ast::inlineness) ->
1747
1748
}
1748
1749
1749
1750
fn parse_fn_block_decl ( p : parser ) -> ast:: fn_decl {
1750
- let inputs =
1751
- if p. peek ( ) == token:: OROR {
1752
- p. bump ( ) ;
1753
- [ ]
1754
- } else {
1755
- parse_seq ( token:: BINOP ( token:: OR ) , token:: BINOP ( token:: OR ) ,
1756
- seq_sep ( token:: COMMA ) , parse_fn_block_arg, p) . node
1757
- } ;
1751
+ let inputs = eat ( p, token:: OROR ) ? [ ] :
1752
+ parse_seq ( token:: BINOP ( token:: OR ) , token:: BINOP ( token:: OR ) ,
1753
+ seq_sep ( token:: COMMA ) , parse_fn_block_arg, p) . node ;
1754
+ let output = eat ( p, token:: RARROW ) ? parse_ty( p, false ) :
1755
+ @spanned( p. get_lo_pos ( ) , p. get_hi_pos ( ) , ast:: ty_infer) ;
1758
1756
ret { inputs : inputs,
1759
- output : @ spanned ( p . get_lo_pos ( ) , p . get_hi_pos ( ) , ast :: ty_infer ) ,
1757
+ output : output ,
1760
1758
purity : ast:: impure_fn,
1761
1759
il : ast:: il_normal,
1762
1760
cf : ast:: return_val,
0 commit comments