@@ -5,7 +5,7 @@ use itertools::{Itertools, Position};
55use rustc_ast:: ptr:: P ;
66use rustc_ast:: util:: classify;
77use rustc_ast:: util:: literal:: escape_byte_str_symbol;
8- use rustc_ast:: util:: parser:: { self , AssocOp , Fixity } ;
8+ use rustc_ast:: util:: parser:: { self , AssocOp , ExprPrecedence , Fixity } ;
99use rustc_ast:: {
1010 self as ast, BlockCheckMode , FormatAlignment , FormatArgPosition , FormatArgsPiece , FormatCount ,
1111 FormatDebugHex , FormatSign , FormatTrait , token,
@@ -214,7 +214,7 @@ impl<'a> State<'a> {
214214 fn print_expr_call ( & mut self , func : & ast:: Expr , args : & [ P < ast:: Expr > ] , fixup : FixupContext ) {
215215 let needs_paren = match func. kind {
216216 ast:: ExprKind :: Field ( ..) => true ,
217- _ => func. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
217+ _ => func. precedence ( ) < ExprPrecedence :: Unambiguous ,
218218 } ;
219219
220220 // Independent of parenthesization related to precedence, we must
@@ -256,7 +256,7 @@ impl<'a> State<'a> {
256256 // a statement containing an expression.
257257 self . print_expr_cond_paren (
258258 receiver,
259- receiver. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
259+ receiver. precedence ( ) < ExprPrecedence :: Unambiguous ,
260260 fixup,
261261 ) ;
262262
@@ -276,7 +276,7 @@ impl<'a> State<'a> {
276276 fixup : FixupContext ,
277277 ) {
278278 let assoc_op = AssocOp :: from_ast_binop ( op. node ) ;
279- let binop_prec = assoc_op. precedence ( ) as i8 ;
279+ let binop_prec = assoc_op. precedence ( ) ;
280280 let left_prec = lhs. precedence ( ) ;
281281 let right_prec = rhs. precedence ( ) ;
282282
@@ -317,7 +317,7 @@ impl<'a> State<'a> {
317317 self . word ( op. as_str ( ) ) ;
318318 self . print_expr_cond_paren (
319319 expr,
320- expr. precedence ( ) < parser :: PREC_PREFIX ,
320+ expr. precedence ( ) < ExprPrecedence :: Prefix ,
321321 fixup. subsequent_subexpression ( ) ,
322322 ) ;
323323 }
@@ -339,7 +339,7 @@ impl<'a> State<'a> {
339339 }
340340 self . print_expr_cond_paren (
341341 expr,
342- expr. precedence ( ) < parser :: PREC_PREFIX ,
342+ expr. precedence ( ) < ExprPrecedence :: Prefix ,
343343 fixup. subsequent_subexpression ( ) ,
344344 ) ;
345345 }
@@ -423,10 +423,9 @@ impl<'a> State<'a> {
423423 self . print_token_literal ( lit, expr. span )
424424 }
425425 ast:: ExprKind :: Cast ( expr, ty) => {
426- let prec = AssocOp :: As . precedence ( ) as i8 ;
427426 self . print_expr_cond_paren (
428427 expr,
429- expr. precedence ( ) < prec ,
428+ expr. precedence ( ) < ExprPrecedence :: Cast ,
430429 fixup. leftmost_subexpression ( ) ,
431430 ) ;
432431 self . space ( ) ;
@@ -503,7 +502,7 @@ impl<'a> State<'a> {
503502 MatchKind :: Postfix => {
504503 self . print_expr_cond_paren (
505504 expr,
506- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
505+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
507506 fixup,
508507 ) ;
509508 self . word_nbsp ( ".match" ) ;
@@ -567,46 +566,44 @@ impl<'a> State<'a> {
567566 ast:: ExprKind :: Await ( expr, _) => {
568567 self . print_expr_cond_paren (
569568 expr,
570- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
569+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
571570 fixup,
572571 ) ;
573572 self . word ( ".await" ) ;
574573 }
575574 ast:: ExprKind :: Assign ( lhs, rhs, _) => {
576- let prec = AssocOp :: Assign . precedence ( ) as i8 ;
577575 self . print_expr_cond_paren (
578576 lhs,
579- lhs. precedence ( ) <= prec ,
577+ lhs. precedence ( ) <= ExprPrecedence :: Assign ,
580578 fixup. leftmost_subexpression ( ) ,
581579 ) ;
582580 self . space ( ) ;
583581 self . word_space ( "=" ) ;
584582 self . print_expr_cond_paren (
585583 rhs,
586- rhs. precedence ( ) < prec ,
584+ rhs. precedence ( ) < ExprPrecedence :: Assign ,
587585 fixup. subsequent_subexpression ( ) ,
588586 ) ;
589587 }
590588 ast:: ExprKind :: AssignOp ( op, lhs, rhs) => {
591- let prec = AssocOp :: Assign . precedence ( ) as i8 ;
592589 self . print_expr_cond_paren (
593590 lhs,
594- lhs. precedence ( ) <= prec ,
591+ lhs. precedence ( ) <= ExprPrecedence :: Assign ,
595592 fixup. leftmost_subexpression ( ) ,
596593 ) ;
597594 self . space ( ) ;
598595 self . word ( op. node . as_str ( ) ) ;
599596 self . word_space ( "=" ) ;
600597 self . print_expr_cond_paren (
601598 rhs,
602- rhs. precedence ( ) < prec ,
599+ rhs. precedence ( ) < ExprPrecedence :: Assign ,
603600 fixup. subsequent_subexpression ( ) ,
604601 ) ;
605602 }
606603 ast:: ExprKind :: Field ( expr, ident) => {
607604 self . print_expr_cond_paren (
608605 expr,
609- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
606+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
610607 fixup,
611608 ) ;
612609 self . word ( "." ) ;
@@ -615,7 +612,7 @@ impl<'a> State<'a> {
615612 ast:: ExprKind :: Index ( expr, index, _) => {
616613 self . print_expr_cond_paren (
617614 expr,
618- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
615+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
619616 fixup. leftmost_subexpression ( ) ,
620617 ) ;
621618 self . word ( "[" ) ;
@@ -627,7 +624,7 @@ impl<'a> State<'a> {
627624 // than `Assign`, but `x .. x = x` gives a parse error instead of `x .. (x = x)`.
628625 // Here we use a fake precedence value so that any child with lower precedence than
629626 // a "normal" binop gets parenthesized. (`LOr` is the lowest-precedence binop.)
630- let fake_prec = AssocOp :: LOr . precedence ( ) as i8 ;
627+ let fake_prec = ExprPrecedence :: LOr ;
631628 if let Some ( e) = start {
632629 self . print_expr_cond_paren (
633630 e,
@@ -662,7 +659,7 @@ impl<'a> State<'a> {
662659 expr,
663660 // Parenthesize if required by precedence, or in the
664661 // case of `break 'inner: loop { break 'inner 1 } + 1`
665- expr. precedence ( ) < parser :: PREC_JUMP
662+ expr. precedence ( ) < ExprPrecedence :: Jump
666663 || ( opt_label. is_none ( ) && classify:: leading_labeled_expr ( expr) ) ,
667664 fixup. subsequent_subexpression ( ) ,
668665 ) ;
@@ -681,7 +678,7 @@ impl<'a> State<'a> {
681678 self . word ( " " ) ;
682679 self . print_expr_cond_paren (
683680 expr,
684- expr. precedence ( ) < parser :: PREC_JUMP ,
681+ expr. precedence ( ) < ExprPrecedence :: Jump ,
685682 fixup. subsequent_subexpression ( ) ,
686683 ) ;
687684 }
@@ -694,7 +691,7 @@ impl<'a> State<'a> {
694691 self . word ( " " ) ;
695692 self . print_expr_cond_paren (
696693 expr,
697- expr. precedence ( ) < parser :: PREC_JUMP ,
694+ expr. precedence ( ) < ExprPrecedence :: Jump ,
698695 fixup. subsequent_subexpression ( ) ,
699696 ) ;
700697 }
@@ -704,7 +701,7 @@ impl<'a> State<'a> {
704701 self . word ( " " ) ;
705702 self . print_expr_cond_paren (
706703 result,
707- result. precedence ( ) < parser :: PREC_JUMP ,
704+ result. precedence ( ) < ExprPrecedence :: Jump ,
708705 fixup. subsequent_subexpression ( ) ,
709706 ) ;
710707 }
@@ -758,13 +755,13 @@ impl<'a> State<'a> {
758755 self . space ( ) ;
759756 self . print_expr_cond_paren (
760757 expr,
761- expr. precedence ( ) < parser :: PREC_JUMP ,
758+ expr. precedence ( ) < ExprPrecedence :: Jump ,
762759 fixup. subsequent_subexpression ( ) ,
763760 ) ;
764761 }
765762 }
766763 ast:: ExprKind :: Try ( e) => {
767- self . print_expr_cond_paren ( e, e. precedence ( ) < parser :: PREC_UNAMBIGUOUS , fixup) ;
764+ self . print_expr_cond_paren ( e, e. precedence ( ) < ExprPrecedence :: Unambiguous , fixup) ;
768765 self . word ( "?" )
769766 }
770767 ast:: ExprKind :: TryBlock ( blk) => {
0 commit comments