@@ -394,26 +394,23 @@ fn parse_type_constraints(p: parser) -> [@ast::ty_constr] {
394
394
ret parse_constrs ( parse_constr_in_type, p) ;
395
395
}
396
396
397
- fn parse_ty_postfix ( orig_t : ast:: ty_ , p : parser , colons_before_params : bool )
398
- -> @ast:: ty {
399
- let lo = p. get_lo_pos ( ) ;
400
-
397
+ fn parse_ty_postfix ( orig_t : ast:: ty_ , p : parser , colons_before_params : bool ,
398
+ lo : uint ) -> @ast:: ty {
401
399
if colons_before_params && p. peek ( ) == token:: MOD_SEP {
402
400
p. bump ( ) ;
403
401
expect ( p, token:: LT ) ;
404
402
} else if !colons_before_params && p. peek ( ) == token:: LT {
405
403
p. bump ( ) ;
406
- } else { ret @spanned ( lo, p. get_lo_pos ( ) , orig_t) ; }
404
+ } else { ret @spanned ( lo, p. get_last_hi_pos ( ) , orig_t) ; }
407
405
408
406
// If we're here, we have explicit type parameter instantiation.
409
407
let seq = parse_seq_to_gt ( some ( token:: COMMA ) , { |p| parse_ty ( p, false ) } ,
410
408
p) ;
411
409
412
410
alt orig_t {
413
411
ast : : ty_path ( pth, ann) {
414
- let hi = p. get_hi_pos ( ) ;
415
- ret @spanned ( lo, hi,
416
- ast:: ty_path ( @spanned ( lo, hi,
412
+ ret @spanned ( lo, p. get_last_hi_pos ( ) ,
413
+ ast:: ty_path ( @spanned ( lo, p. get_last_hi_pos ( ) ,
417
414
{ global: pth. node . global ,
418
415
idents: pth. node . idents ,
419
416
types: seq} ) , ann) ) ;
@@ -527,7 +524,7 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty {
527
524
let path = parse_path ( p) ;
528
525
t = ast:: ty_path ( path, p. get_id ( ) ) ;
529
526
} else { p. fatal ( "expecting type" ) ; }
530
- ret parse_ty_postfix ( t, p, colons_before_params) ;
527
+ ret parse_ty_postfix ( t, p, colons_before_params, lo ) ;
531
528
}
532
529
533
530
fn parse_arg_mode ( p : parser ) -> ast:: mode {
0 commit comments