@@ -36,7 +36,7 @@ use ast::SelfKind;
36
36
use ast:: { TraitItem , TraitRef , TraitObjectSyntax } ;
37
37
use ast:: { Ty , TyKind , TypeBinding , TyParam , TyParamBounds } ;
38
38
use ast:: { ViewPath , ViewPathGlob , ViewPathList , ViewPathSimple } ;
39
- use ast:: { Visibility , WhereClause } ;
39
+ use ast:: { Visibility , WhereClause , CrateSugar } ;
40
40
use ast:: { BinOpKind , UnOp } ;
41
41
use ast:: { RangeEnd , RangeSyntax } ;
42
42
use { ast, attr} ;
@@ -5327,6 +5327,10 @@ impl<'a> Parser<'a> {
5327
5327
pub fn parse_visibility ( & mut self , can_take_tuple : bool ) -> PResult < ' a , Visibility > {
5328
5328
maybe_whole ! ( self , NtVis , |x| x) ;
5329
5329
5330
+ if self . eat_keyword ( keywords:: Crate ) {
5331
+ return Ok ( Visibility :: Crate ( self . prev_span , CrateSugar :: JustCrate ) ) ;
5332
+ }
5333
+
5330
5334
if !self . eat_keyword ( keywords:: Pub ) {
5331
5335
return Ok ( Visibility :: Inherited )
5332
5336
}
@@ -5340,7 +5344,7 @@ impl<'a> Parser<'a> {
5340
5344
// `pub(crate)`
5341
5345
self . bump ( ) ; // `(`
5342
5346
self . bump ( ) ; // `crate`
5343
- let vis = Visibility :: Crate ( self . prev_span ) ;
5347
+ let vis = Visibility :: Crate ( self . prev_span , CrateSugar :: PubCrate ) ;
5344
5348
self . expect ( & token:: CloseDelim ( token:: Paren ) ) ?; // `)`
5345
5349
return Ok ( vis)
5346
5350
} else if self . look_ahead ( 1 , |t| t. is_keyword ( keywords:: In ) ) {
0 commit comments