@@ -64,7 +64,7 @@ use std::path::{self, Path, PathBuf};
6464use  std:: slice; 
6565
6666bitflags !  { 
67-     flags Restrictions :  u8  { 
67+     pub   flags Restrictions :  u8  { 
6868        const  RESTRICTION_STMT_EXPR          = 1  << 0 , 
6969        const  RESTRICTION_NO_STRUCT_LITERAL  = 1  << 1 , 
7070    } 
@@ -2291,7 +2291,7 @@ impl<'a> Parser<'a> {
22912291                    let  e = if  self . token . can_begin_expr ( ) 
22922292                               && !( self . token  == token:: OpenDelim ( token:: Brace ) 
22932293                                    && self . restrictions . contains ( 
2294-                                            Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ) )  { 
2294+                                            RESTRICTION_NO_STRUCT_LITERAL ) )  { 
22952295                        Some ( self . parse_expr ( ) ?) 
22962296                    }  else  { 
22972297                        None 
@@ -2318,7 +2318,7 @@ impl<'a> Parser<'a> {
23182318                        // This is a struct literal, unless we're prohibited 
23192319                        // from parsing struct literals here. 
23202320                        let  prohibited = self . restrictions . contains ( 
2321-                             Restrictions :: RESTRICTION_NO_STRUCT_LITERAL 
2321+                             RESTRICTION_NO_STRUCT_LITERAL 
23222322                        ) ; 
23232323                        if  !prohibited { 
23242324                            return  self . parse_struct_expr ( lo,  pth,  attrs) ; 
@@ -2735,7 +2735,7 @@ impl<'a> Parser<'a> {
27352735            token:: Ident ( ..)  if  self . token . is_keyword ( keywords:: In )  => { 
27362736                self . bump ( ) ; 
27372737                let  place = self . parse_expr_res ( 
2738-                     Restrictions :: RESTRICTION_NO_STRUCT_LITERAL , 
2738+                     RESTRICTION_NO_STRUCT_LITERAL , 
27392739                    None , 
27402740                ) ?; 
27412741                let  blk = self . parse_block ( ) ?; 
@@ -2798,7 +2798,7 @@ impl<'a> Parser<'a> {
27982798
27992799            let  cur_op_span = self . span ; 
28002800            let  restrictions = if  op. is_assign_like ( )  { 
2801-                 self . restrictions  &  Restrictions :: RESTRICTION_NO_STRUCT_LITERAL 
2801+                 self . restrictions  &  RESTRICTION_NO_STRUCT_LITERAL 
28022802            }  else  { 
28032803                self . restrictions 
28042804            } ; 
@@ -2848,21 +2848,21 @@ impl<'a> Parser<'a> {
28482848
28492849            let  rhs = match  op. fixity ( )  { 
28502850                Fixity :: Right  => self . with_res ( 
2851-                     restrictions - Restrictions :: RESTRICTION_STMT_EXPR , 
2851+                     restrictions - RESTRICTION_STMT_EXPR , 
28522852                    |this| { 
28532853                        this. parse_assoc_expr_with ( op. precedence ( ) , 
28542854                            LhsExpr :: NotYetParsed ) 
28552855                } ) , 
28562856                Fixity :: Left  => self . with_res ( 
2857-                     restrictions - Restrictions :: RESTRICTION_STMT_EXPR , 
2857+                     restrictions - RESTRICTION_STMT_EXPR , 
28582858                    |this| { 
28592859                        this. parse_assoc_expr_with ( op. precedence ( )  + 1 , 
28602860                            LhsExpr :: NotYetParsed ) 
28612861                } ) , 
28622862                // We currently have no non-associative operators that are not handled above by 
28632863                // the special cases. The code is here only for future convenience. 
28642864                Fixity :: None  => self . with_res ( 
2865-                     restrictions - Restrictions :: RESTRICTION_STMT_EXPR , 
2865+                     restrictions - RESTRICTION_STMT_EXPR , 
28662866                    |this| { 
28672867                        this. parse_assoc_expr_with ( op. precedence ( )  + 1 , 
28682868                            LhsExpr :: NotYetParsed ) 
@@ -2972,7 +2972,7 @@ impl<'a> Parser<'a> {
29722972        if  self . token . can_begin_expr ( )  { 
29732973            // parse `for i in 1.. { }` as infinite loop, not as `for i in (1..{})`. 
29742974            if  self . token  == token:: OpenDelim ( token:: Brace )  { 
2975-                 return  !self . restrictions . contains ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ) ; 
2975+                 return  !self . restrictions . contains ( RESTRICTION_NO_STRUCT_LITERAL ) ; 
29762976            } 
29772977            true 
29782978        }  else  { 
@@ -2986,7 +2986,7 @@ impl<'a> Parser<'a> {
29862986            return  self . parse_if_let_expr ( attrs) ; 
29872987        } 
29882988        let  lo = self . prev_span ; 
2989-         let  cond = self . parse_expr_res ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
2989+         let  cond = self . parse_expr_res ( RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
29902990        let  thn = self . parse_block ( ) ?; 
29912991        let  mut  els:  Option < P < Expr > >  = None ; 
29922992        let  mut  hi = thn. span ; 
@@ -3005,7 +3005,7 @@ impl<'a> Parser<'a> {
30053005        self . expect_keyword ( keywords:: Let ) ?; 
30063006        let  pat = self . parse_pat ( ) ?; 
30073007        self . expect ( & token:: Eq ) ?; 
3008-         let  expr = self . parse_expr_res ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
3008+         let  expr = self . parse_expr_res ( RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
30093009        let  thn = self . parse_block ( ) ?; 
30103010        let  ( hi,  els)  = if  self . eat_keyword ( keywords:: Else )  { 
30113011            let  expr = self . parse_else_expr ( ) ?; 
@@ -3059,7 +3059,7 @@ impl<'a> Parser<'a> {
30593059
30603060        let  pat = self . parse_pat ( ) ?; 
30613061        self . expect_keyword ( keywords:: In ) ?; 
3062-         let  expr = self . parse_expr_res ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
3062+         let  expr = self . parse_expr_res ( RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
30633063        let  ( iattrs,  loop_block)  = self . parse_inner_attrs_and_block ( ) ?; 
30643064        attrs. extend ( iattrs) ; 
30653065
@@ -3074,7 +3074,7 @@ impl<'a> Parser<'a> {
30743074        if  self . token . is_keyword ( keywords:: Let )  { 
30753075            return  self . parse_while_let_expr ( opt_ident,  span_lo,  attrs) ; 
30763076        } 
3077-         let  cond = self . parse_expr_res ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
3077+         let  cond = self . parse_expr_res ( RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
30783078        let  ( iattrs,  body)  = self . parse_inner_attrs_and_block ( ) ?; 
30793079        attrs. extend ( iattrs) ; 
30803080        let  span = span_lo. to ( body. span ) ; 
@@ -3088,7 +3088,7 @@ impl<'a> Parser<'a> {
30883088        self . expect_keyword ( keywords:: Let ) ?; 
30893089        let  pat = self . parse_pat ( ) ?; 
30903090        self . expect ( & token:: Eq ) ?; 
3091-         let  expr = self . parse_expr_res ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
3091+         let  expr = self . parse_expr_res ( RESTRICTION_NO_STRUCT_LITERAL ,  None ) ?; 
30923092        let  ( iattrs,  body)  = self . parse_inner_attrs_and_block ( ) ?; 
30933093        attrs. extend ( iattrs) ; 
30943094        let  span = span_lo. to ( body. span ) ; 
@@ -3118,7 +3118,7 @@ impl<'a> Parser<'a> {
31183118    fn  parse_match_expr ( & mut  self ,  mut  attrs :  ThinVec < Attribute > )  -> PResult < ' a ,  P < Expr > >  { 
31193119        let  match_span = self . prev_span ; 
31203120        let  lo = self . prev_span ; 
3121-         let  discriminant = self . parse_expr_res ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL , 
3121+         let  discriminant = self . parse_expr_res ( RESTRICTION_NO_STRUCT_LITERAL , 
31223122                                               None ) ?; 
31233123        if  let  Err ( mut  e)  = self . expect ( & token:: OpenDelim ( token:: Brace ) )  { 
31243124            if  self . token  == token:: Token :: Semi  { 
@@ -3159,7 +3159,7 @@ impl<'a> Parser<'a> {
31593159            guard = Some ( self . parse_expr ( ) ?) ; 
31603160        } 
31613161        self . expect ( & token:: FatArrow ) ?; 
3162-         let  expr = self . parse_expr_res ( Restrictions :: RESTRICTION_STMT_EXPR ,  None ) ?; 
3162+         let  expr = self . parse_expr_res ( RESTRICTION_STMT_EXPR ,  None ) ?; 
31633163
31643164        let  require_comma =
31653165            !classify:: expr_is_simple_block ( & expr) 
@@ -3740,7 +3740,7 @@ impl<'a> Parser<'a> {
37403740        self . look_ahead ( 2 ,  |t| * t == token:: OpenDelim ( token:: Brace ) )  &&
37413741
37423742        // prevent `while catch {} {}`, `if catch {} {} else {}`, etc. 
3743-         !self . restrictions . contains ( Restrictions :: RESTRICTION_NO_STRUCT_LITERAL ) 
3743+         !self . restrictions . contains ( RESTRICTION_NO_STRUCT_LITERAL ) 
37443744    } 
37453745
37463746    fn  is_union_item ( & self )  -> bool  { 
@@ -3812,7 +3812,7 @@ impl<'a> Parser<'a> {
38123812                    self . mk_expr ( lo. to ( hi) ,  ExprKind :: Path ( None ,  pth) ,  ThinVec :: new ( ) ) 
38133813                } ; 
38143814
3815-                 let  expr = self . with_res ( Restrictions :: RESTRICTION_STMT_EXPR ,  |this| { 
3815+                 let  expr = self . with_res ( RESTRICTION_STMT_EXPR ,  |this| { 
38163816                    let  expr = this. parse_dot_or_call_expr_with ( expr,  lo,  attrs. into ( ) ) ?; 
38173817                    this. parse_assoc_expr_with ( 0 ,  LhsExpr :: AlreadyParsed ( expr) ) 
38183818                } ) ?; 
@@ -3952,7 +3952,7 @@ impl<'a> Parser<'a> {
39523952
39533953                    // Remainder are line-expr stmts. 
39543954                    let  e = self . parse_expr_res ( 
3955-                         Restrictions :: RESTRICTION_STMT_EXPR ,  Some ( attrs. into ( ) ) ) ?; 
3955+                         RESTRICTION_STMT_EXPR ,  Some ( attrs. into ( ) ) ) ?; 
39563956                    Stmt  { 
39573957                        id :  ast:: DUMMY_NODE_ID , 
39583958                        span :  lo. to ( e. span ) , 
@@ -3965,7 +3965,7 @@ impl<'a> Parser<'a> {
39653965
39663966    /// Is this expression a successfully-parsed statement? 
39673967     fn  expr_is_complete ( & mut  self ,  e :  & Expr )  -> bool  { 
3968-         self . restrictions . contains ( Restrictions :: RESTRICTION_STMT_EXPR )  &&
3968+         self . restrictions . contains ( RESTRICTION_STMT_EXPR )  &&
39693969            !classify:: expr_requires_semi_to_be_stmt ( e) 
39703970    } 
39713971
0 commit comments