@@ -36,7 +36,7 @@ use ast::SelfKind;
3636use ast:: { TraitItem , TraitRef , TraitObjectSyntax } ;
3737use ast:: { Ty , TyKind , TypeBinding , TyParam , TyParamBounds } ;
3838use ast:: { ViewPath , ViewPathGlob , ViewPathList , ViewPathSimple } ;
39- use ast:: { Visibility , WhereClause } ;
39+ use ast:: { Visibility , WhereClause , CrateSugar } ;
4040use ast:: { BinOpKind , UnOp } ;
4141use ast:: { RangeEnd , RangeSyntax } ;
4242use { ast, attr} ;
@@ -5327,6 +5327,10 @@ impl<'a> Parser<'a> {
53275327 pub fn parse_visibility ( & mut self , can_take_tuple : bool ) -> PResult < ' a , Visibility > {
53285328 maybe_whole ! ( self , NtVis , |x| x) ;
53295329
5330+ if self . eat_keyword ( keywords:: Crate ) {
5331+ return Ok ( Visibility :: Crate ( self . prev_span , CrateSugar :: JustCrate ) ) ;
5332+ }
5333+
53305334 if !self . eat_keyword ( keywords:: Pub ) {
53315335 return Ok ( Visibility :: Inherited )
53325336 }
@@ -5340,7 +5344,7 @@ impl<'a> Parser<'a> {
53405344 // `pub(crate)`
53415345 self . bump ( ) ; // `(`
53425346 self . bump ( ) ; // `crate`
5343- let vis = Visibility :: Crate ( self . prev_span ) ;
5347+ let vis = Visibility :: Crate ( self . prev_span , CrateSugar :: PubCrate ) ;
53445348 self . expect ( & token:: CloseDelim ( token:: Paren ) ) ?; // `)`
53455349 return Ok ( vis)
53465350 } else if self . look_ahead ( 1 , |t| t. is_keyword ( keywords:: In ) ) {
0 commit comments