@@ -574,10 +574,12 @@ impl<'a> Parser<'a> {
574
574
pub fn parse_path_list_item ( & mut self ) -> PResult < ast:: PathListItem > {
575
575
let lo = self . span . lo ;
576
576
let node = if try!( self . eat_keyword ( keywords:: SelfValue ) ) {
577
- ast:: PathListMod { id : ast:: DUMMY_NODE_ID }
577
+ let rename = try!( self . parse_rename ( ) ) ;
578
+ ast:: PathListMod { id : ast:: DUMMY_NODE_ID , rename : rename }
578
579
} else {
579
580
let ident = try!( self . parse_ident ( ) ) ;
580
- ast:: PathListIdent { name : ident, id : ast:: DUMMY_NODE_ID }
581
+ let rename = try!( self . parse_rename ( ) ) ;
582
+ ast:: PathListIdent { name : ident, rename : rename, id : ast:: DUMMY_NODE_ID }
581
583
} ;
582
584
let hi = self . last_span . hi ;
583
585
Ok ( spanned ( lo, hi, node) )
@@ -5117,8 +5119,8 @@ impl<'a> Parser<'a> {
5117
5119
-> PResult < P < Item > > {
5118
5120
5119
5121
let crate_name = try!( self . parse_ident ( ) ) ;
5120
- let ( maybe_path, ident) = if try!( self . eat_keyword ( keywords :: As ) ) {
5121
- ( Some ( crate_name. name ) , try! ( self . parse_ident ( ) ) )
5122
+ let ( maybe_path, ident) = if let Some ( ident ) = try!( self . parse_rename ( ) ) {
5123
+ ( Some ( crate_name. name ) , ident )
5122
5124
} else {
5123
5125
( None , crate_name)
5124
5126
} ;
@@ -5779,10 +5781,16 @@ impl<'a> Parser<'a> {
5779
5781
}
5780
5782
} ) . collect ( )
5781
5783
} ;
5784
+ rename_to = try!( self . parse_rename ( ) ) . unwrap_or ( rename_to) ;
5785
+ Ok ( P ( spanned ( lo, self . last_span . hi , ViewPathSimple ( rename_to, path) ) ) )
5786
+ }
5787
+
5788
+ fn parse_rename ( & mut self ) -> PResult < Option < Ident > > {
5782
5789
if try!( self . eat_keyword ( keywords:: As ) ) {
5783
- rename_to = try!( self . parse_ident ( ) )
5790
+ self . parse_ident ( ) . map ( Some )
5791
+ } else {
5792
+ Ok ( None )
5784
5793
}
5785
- Ok ( P ( spanned ( lo, self . last_span . hi , ViewPathSimple ( rename_to, path) ) ) )
5786
5794
}
5787
5795
5788
5796
/// Parses a source module as a crate. This is the main
0 commit comments