@@ -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} ;
@@ -5325,6 +5325,10 @@ impl<'a> Parser<'a> {
53255325 pub fn parse_visibility ( & mut self , can_take_tuple : bool ) -> PResult < ' a , Visibility > {
53265326 maybe_whole ! ( self , NtVis , |x| x) ;
53275327
5328+ if self . eat_keyword ( keywords:: Crate ) {
5329+ return Ok ( Visibility :: Crate ( self . prev_span , CrateSugar :: JustCrate ) ) ;
5330+ }
5331+
53285332 if !self . eat_keyword ( keywords:: Pub ) {
53295333 return Ok ( Visibility :: Inherited )
53305334 }
@@ -5338,7 +5342,7 @@ impl<'a> Parser<'a> {
53385342 // `pub(crate)`
53395343 self . bump ( ) ; // `(`
53405344 self . bump ( ) ; // `crate`
5341- let vis = Visibility :: Crate ( self . prev_span ) ;
5345+ let vis = Visibility :: Crate ( self . prev_span , CrateSugar :: PubCrate ) ;
53425346 self . expect ( & token:: CloseDelim ( token:: Paren ) ) ?; // `)`
53435347 return Ok ( vis)
53445348 } else if self . look_ahead ( 1 , |t| t. is_keyword ( keywords:: In ) ) {
0 commit comments