@@ -5,7 +5,7 @@ use itertools::{Itertools, Position};
5
5
use rustc_ast:: ptr:: P ;
6
6
use rustc_ast:: util:: classify;
7
7
use 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 } ;
9
9
use rustc_ast:: {
10
10
self as ast, BlockCheckMode , FormatAlignment , FormatArgPosition , FormatArgsPiece , FormatCount ,
11
11
FormatDebugHex , FormatSign , FormatTrait , token,
@@ -214,7 +214,7 @@ impl<'a> State<'a> {
214
214
fn print_expr_call ( & mut self , func : & ast:: Expr , args : & [ P < ast:: Expr > ] , fixup : FixupContext ) {
215
215
let needs_paren = match func. kind {
216
216
ast:: ExprKind :: Field ( ..) => true ,
217
- _ => func. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
217
+ _ => func. precedence ( ) < ExprPrecedence :: Unambiguous ,
218
218
} ;
219
219
220
220
// Independent of parenthesization related to precedence, we must
@@ -256,7 +256,7 @@ impl<'a> State<'a> {
256
256
// a statement containing an expression.
257
257
self . print_expr_cond_paren (
258
258
receiver,
259
- receiver. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
259
+ receiver. precedence ( ) < ExprPrecedence :: Unambiguous ,
260
260
fixup,
261
261
) ;
262
262
@@ -276,7 +276,7 @@ impl<'a> State<'a> {
276
276
fixup : FixupContext ,
277
277
) {
278
278
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 ( ) ;
280
280
let left_prec = lhs. precedence ( ) ;
281
281
let right_prec = rhs. precedence ( ) ;
282
282
@@ -317,7 +317,7 @@ impl<'a> State<'a> {
317
317
self . word ( op. as_str ( ) ) ;
318
318
self . print_expr_cond_paren (
319
319
expr,
320
- expr. precedence ( ) < parser :: PREC_PREFIX ,
320
+ expr. precedence ( ) < ExprPrecedence :: Prefix ,
321
321
fixup. subsequent_subexpression ( ) ,
322
322
) ;
323
323
}
@@ -339,7 +339,7 @@ impl<'a> State<'a> {
339
339
}
340
340
self . print_expr_cond_paren (
341
341
expr,
342
- expr. precedence ( ) < parser :: PREC_PREFIX ,
342
+ expr. precedence ( ) < ExprPrecedence :: Prefix ,
343
343
fixup. subsequent_subexpression ( ) ,
344
344
) ;
345
345
}
@@ -423,10 +423,9 @@ impl<'a> State<'a> {
423
423
self . print_token_literal ( lit, expr. span )
424
424
}
425
425
ast:: ExprKind :: Cast ( expr, ty) => {
426
- let prec = AssocOp :: As . precedence ( ) as i8 ;
427
426
self . print_expr_cond_paren (
428
427
expr,
429
- expr. precedence ( ) < prec ,
428
+ expr. precedence ( ) < ExprPrecedence :: Cast ,
430
429
fixup. leftmost_subexpression ( ) ,
431
430
) ;
432
431
self . space ( ) ;
@@ -503,7 +502,7 @@ impl<'a> State<'a> {
503
502
MatchKind :: Postfix => {
504
503
self . print_expr_cond_paren (
505
504
expr,
506
- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
505
+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
507
506
fixup,
508
507
) ;
509
508
self . word_nbsp ( ".match" ) ;
@@ -567,46 +566,44 @@ impl<'a> State<'a> {
567
566
ast:: ExprKind :: Await ( expr, _) => {
568
567
self . print_expr_cond_paren (
569
568
expr,
570
- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
569
+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
571
570
fixup,
572
571
) ;
573
572
self . word ( ".await" ) ;
574
573
}
575
574
ast:: ExprKind :: Assign ( lhs, rhs, _) => {
576
- let prec = AssocOp :: Assign . precedence ( ) as i8 ;
577
575
self . print_expr_cond_paren (
578
576
lhs,
579
- lhs. precedence ( ) <= prec ,
577
+ lhs. precedence ( ) <= ExprPrecedence :: Assign ,
580
578
fixup. leftmost_subexpression ( ) ,
581
579
) ;
582
580
self . space ( ) ;
583
581
self . word_space ( "=" ) ;
584
582
self . print_expr_cond_paren (
585
583
rhs,
586
- rhs. precedence ( ) < prec ,
584
+ rhs. precedence ( ) < ExprPrecedence :: Assign ,
587
585
fixup. subsequent_subexpression ( ) ,
588
586
) ;
589
587
}
590
588
ast:: ExprKind :: AssignOp ( op, lhs, rhs) => {
591
- let prec = AssocOp :: Assign . precedence ( ) as i8 ;
592
589
self . print_expr_cond_paren (
593
590
lhs,
594
- lhs. precedence ( ) <= prec ,
591
+ lhs. precedence ( ) <= ExprPrecedence :: Assign ,
595
592
fixup. leftmost_subexpression ( ) ,
596
593
) ;
597
594
self . space ( ) ;
598
595
self . word ( op. node . as_str ( ) ) ;
599
596
self . word_space ( "=" ) ;
600
597
self . print_expr_cond_paren (
601
598
rhs,
602
- rhs. precedence ( ) < prec ,
599
+ rhs. precedence ( ) < ExprPrecedence :: Assign ,
603
600
fixup. subsequent_subexpression ( ) ,
604
601
) ;
605
602
}
606
603
ast:: ExprKind :: Field ( expr, ident) => {
607
604
self . print_expr_cond_paren (
608
605
expr,
609
- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
606
+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
610
607
fixup,
611
608
) ;
612
609
self . word ( "." ) ;
@@ -615,7 +612,7 @@ impl<'a> State<'a> {
615
612
ast:: ExprKind :: Index ( expr, index, _) => {
616
613
self . print_expr_cond_paren (
617
614
expr,
618
- expr. precedence ( ) < parser :: PREC_UNAMBIGUOUS ,
615
+ expr. precedence ( ) < ExprPrecedence :: Unambiguous ,
619
616
fixup. leftmost_subexpression ( ) ,
620
617
) ;
621
618
self . word ( "[" ) ;
@@ -627,7 +624,7 @@ impl<'a> State<'a> {
627
624
// than `Assign`, but `x .. x = x` gives a parse error instead of `x .. (x = x)`.
628
625
// Here we use a fake precedence value so that any child with lower precedence than
629
626
// 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 ;
631
628
if let Some ( e) = start {
632
629
self . print_expr_cond_paren (
633
630
e,
@@ -662,7 +659,7 @@ impl<'a> State<'a> {
662
659
expr,
663
660
// Parenthesize if required by precedence, or in the
664
661
// case of `break 'inner: loop { break 'inner 1 } + 1`
665
- expr. precedence ( ) < parser :: PREC_JUMP
662
+ expr. precedence ( ) < ExprPrecedence :: Jump
666
663
|| ( opt_label. is_none ( ) && classify:: leading_labeled_expr ( expr) ) ,
667
664
fixup. subsequent_subexpression ( ) ,
668
665
) ;
@@ -681,7 +678,7 @@ impl<'a> State<'a> {
681
678
self . word ( " " ) ;
682
679
self . print_expr_cond_paren (
683
680
expr,
684
- expr. precedence ( ) < parser :: PREC_JUMP ,
681
+ expr. precedence ( ) < ExprPrecedence :: Jump ,
685
682
fixup. subsequent_subexpression ( ) ,
686
683
) ;
687
684
}
@@ -694,7 +691,7 @@ impl<'a> State<'a> {
694
691
self . word ( " " ) ;
695
692
self . print_expr_cond_paren (
696
693
expr,
697
- expr. precedence ( ) < parser :: PREC_JUMP ,
694
+ expr. precedence ( ) < ExprPrecedence :: Jump ,
698
695
fixup. subsequent_subexpression ( ) ,
699
696
) ;
700
697
}
@@ -704,7 +701,7 @@ impl<'a> State<'a> {
704
701
self . word ( " " ) ;
705
702
self . print_expr_cond_paren (
706
703
result,
707
- result. precedence ( ) < parser :: PREC_JUMP ,
704
+ result. precedence ( ) < ExprPrecedence :: Jump ,
708
705
fixup. subsequent_subexpression ( ) ,
709
706
) ;
710
707
}
@@ -758,13 +755,13 @@ impl<'a> State<'a> {
758
755
self . space ( ) ;
759
756
self . print_expr_cond_paren (
760
757
expr,
761
- expr. precedence ( ) < parser :: PREC_JUMP ,
758
+ expr. precedence ( ) < ExprPrecedence :: Jump ,
762
759
fixup. subsequent_subexpression ( ) ,
763
760
) ;
764
761
}
765
762
}
766
763
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) ;
768
765
self . word ( "?" )
769
766
}
770
767
ast:: ExprKind :: TryBlock ( blk) => {
0 commit comments