File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -416,6 +416,21 @@ fn parse_ret_ty(p: parser) -> (ast::ret_style, @ast::ty) {
416
416
}
417
417
}
418
418
419
+ fn parse_region ( p : parser ) -> ast:: region {
420
+ alt p. token {
421
+ token:: IDENT ( sid, _) if p. look_ahead ( 1 u) == token:: DOT {
422
+ let string = p. get_str ( sid) ;
423
+ p. bump ( ) ; p. bump ( ) ;
424
+ if string == "self" {
425
+ ast:: re_self
426
+ } else {
427
+ ast:: re_named ( string)
428
+ }
429
+ }
430
+ _ { ast : : re_inferred }
431
+ }
432
+ }
433
+
419
434
fn parse_ty ( p : parser , colons_before_params : bool ) -> @ast:: ty {
420
435
let lo = p. span . lo ;
421
436
@@ -467,6 +482,11 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty {
467
482
let t = ast:: ty_vec ( parse_mt ( p) ) ;
468
483
expect ( p, token:: RBRACKET ) ;
469
484
t
485
+ } else if p. token == token:: BINOP ( token:: AND ) {
486
+ p. bump ( ) ;
487
+ let region = parse_region ( p) ;
488
+ let mt = parse_mt ( p) ;
489
+ ast:: ty_rptr ( region, mt)
470
490
} else if eat_word ( p, "fn" ) {
471
491
let proto = parse_fn_ty_proto ( p) ;
472
492
alt proto {
You can’t perform that action at this time.
0 commit comments