@@ -299,7 +299,7 @@ fn parse_ty_fn(proto: ast::proto, p: parser) -> ast::ty_ {
299
299
ret ast:: ty_fn ( proto, inputs. node , ret_ty, ret_style, constrs) ;
300
300
}
301
301
302
- fn parse_ty_obj ( p : parser , & hi : uint ) -> ast:: ty_ {
302
+ fn parse_ty_obj ( p : parser ) -> ast:: ty_ {
303
303
fn parse_method_sig ( p : parser ) -> ast:: ty_method {
304
304
let flo = p. get_lo_pos ( ) ;
305
305
let proto: ast:: proto = parse_method_proto ( p) ;
@@ -320,7 +320,6 @@ fn parse_ty_obj(p: parser, &hi: uint) -> ast::ty_ {
320
320
}
321
321
let meths =
322
322
parse_seq ( token:: LBRACE , token:: RBRACE , none, parse_method_sig, p) ;
323
- hi = meths. span . hi ;
324
323
ret ast:: ty_obj ( meths. node ) ;
325
324
}
326
325
@@ -475,7 +474,6 @@ fn parse_ret_ty(p: parser, n_args: uint) -> (ast::ret_style, @ast::ty) {
475
474
476
475
fn parse_ty ( p : parser , colons_before_params : bool ) -> @ast:: ty {
477
476
let lo = p. get_lo_pos ( ) ;
478
- let hi = lo;
479
477
let t: ast:: ty_ ;
480
478
// FIXME: do something with this
481
479
@@ -518,7 +516,6 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty {
518
516
} else if p. peek ( ) == token:: LPAREN {
519
517
p. bump ( ) ;
520
518
if p. peek ( ) == token:: RPAREN {
521
- hi = p. get_hi_pos ( ) ;
522
519
p. bump ( ) ;
523
520
t = ast:: ty_nil;
524
521
} else {
@@ -530,54 +527,44 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty {
530
527
if vec:: len ( ts) == 1 u {
531
528
t = ts[ 0 ] . node ;
532
529
} else { t = ast:: ty_tup ( ts) ; }
533
- hi = p. get_hi_pos ( ) ;
534
530
expect ( p, token:: RPAREN ) ;
535
531
}
536
532
} else if p. peek ( ) == token:: AT {
537
533
p. bump ( ) ;
538
- let mt = parse_mt ( p) ;
539
- hi = mt. ty . span . hi ;
540
- t = ast:: ty_box ( mt) ;
534
+ t = ast:: ty_box ( parse_mt ( p) ) ;
541
535
} else if p. peek ( ) == token:: TILDE {
542
536
p. bump ( ) ;
543
- let mt = parse_mt ( p) ;
544
- hi = mt. ty . span . hi ;
545
- t = ast:: ty_uniq ( mt) ;
537
+ t = ast:: ty_uniq ( parse_mt ( p) ) ;
546
538
} else if p. peek ( ) == token:: BINOP ( token:: STAR ) {
547
539
p. bump ( ) ;
548
- let mt = parse_mt ( p) ;
549
- hi = mt. ty . span . hi ;
550
- t = ast:: ty_ptr ( mt) ;
540
+ t = ast:: ty_ptr ( parse_mt ( p) ) ;
551
541
} else if p. peek ( ) == token:: LBRACE {
552
542
let elems =
553
543
parse_seq ( token:: LBRACE , token:: RBRACE , some ( token:: COMMA ) ,
554
544
parse_ty_field, p) ;
555
- hi = elems. span . hi ;
545
+ let hi = elems. span . hi ;
556
546
t = ast:: ty_rec ( elems. node ) ;
557
547
if p. peek ( ) == token:: COLON {
558
548
p. bump ( ) ;
559
- t =
560
- ast:: ty_constr ( @spanned ( lo, hi, t) ,
549
+ t = ast:: ty_constr ( @spanned ( lo, hi, t) ,
561
550
parse_type_constraints ( p) ) ;
562
551
}
563
552
} else if p. peek ( ) == token:: LBRACKET {
564
553
expect ( p, token:: LBRACKET ) ;
565
554
t = ast:: ty_vec ( parse_mt ( p) ) ;
566
- hi = p. get_hi_pos ( ) ;
567
555
expect ( p, token:: RBRACKET ) ;
568
556
} else if eat_word ( p, "fn" ) {
569
557
let proto = parse_fn_ty_proto ( p) ;
570
558
t = parse_ty_fn ( proto, p) ;
571
- alt t { ast : : ty_fn ( _, _, out, _, _) { hi = out. span . hi ; } }
572
559
} else if eat_word ( p, "block" ) {
573
560
t = parse_ty_fn ( ast:: proto_block, p) ;
574
- alt t { ast : : ty_fn ( _, _, out, _, _) { hi = out. span . hi ; } }
561
+ } else if eat_word ( p, "lambda" ) {
562
+ t = parse_ty_fn ( ast:: proto_shared ( ast:: sugar_sexy) , p) ;
575
563
} else if eat_word ( p, "obj" ) {
576
- t = parse_ty_obj ( p, hi ) ;
564
+ t = parse_ty_obj ( p) ;
577
565
} else if p. peek ( ) == token:: MOD_SEP || is_ident ( p. peek ( ) ) {
578
566
let path = parse_path ( p) ;
579
567
t = ast:: ty_path ( path, p. get_id ( ) ) ;
580
- hi = path. span . hi ;
581
568
} else { p. fatal ( "expecting type" ) ; }
582
569
ret parse_ty_postfix ( t, p, colons_before_params) ;
583
570
}
0 commit comments