@@ -986,7 +986,7 @@ impl Parser {
986
986
} else if * self . token == token:: BINOP ( token:: STAR ) {
987
987
// STAR POINTER (bare pointer?)
988
988
self . bump ( ) ;
989
- ty_ptr ( self . parse_mt ( ) )
989
+ self . parse_star_pointee ( )
990
990
} else if * self . token == token:: LBRACE {
991
991
// STRUCTURAL RECORD (remove?)
992
992
let elems = self . parse_unspanned_seq (
@@ -1084,16 +1084,21 @@ impl Parser {
1084
1084
ctor ( mt)
1085
1085
}
1086
1086
1087
+ pub fn parse_star_pointee ( & self ) -> ty_ {
1088
+ // look for `*'lt` or `*'foo ` and interpret `foo` as the region name:
1089
+ let opt_lifetime = self . parse_opt_lifetime ( ) ;
1090
+ ty_ptr ( opt_lifetime, self . parse_mt ( ) )
1091
+ }
1092
+
1087
1093
pub fn parse_borrowed_pointee ( & self ) -> ty_ {
1088
1094
// look for `&'lt` or `&'foo ` and interpret `foo` as the region name:
1089
1095
let opt_lifetime = self . parse_opt_lifetime ( ) ;
1090
1096
1091
1097
if self . token_is_closure_keyword ( self . token ) {
1092
- return self . parse_ty_closure ( BorrowedSigil , opt_lifetime) ;
1098
+ self . parse_ty_closure ( BorrowedSigil , opt_lifetime)
1099
+ } else {
1100
+ ty_rptr ( opt_lifetime, self . parse_mt ( ) )
1093
1101
}
1094
-
1095
- let mt = self . parse_mt ( ) ;
1096
- return ty_rptr ( opt_lifetime, mt) ;
1097
1102
}
1098
1103
1099
1104
// parse an optional, obsolete argument mode.
0 commit comments