@@ -3296,12 +3296,10 @@ pub(crate) mod printing {
3296
3296
fixup. leftmost_subexpression_with_operator ( & e. left , false , false , Precedence :: Assign ) ;
3297
3297
print_subexpression ( & e. left , left_prec <= Precedence :: Range , tokens, left_fixup) ;
3298
3298
e. eq_token . to_tokens ( tokens) ;
3299
- let ( right_prec, right_fixup) = fixup. rightmost_subexpression ( & e. right , Precedence :: Assign ) ;
3300
- print_subexpression (
3299
+ print_expr (
3301
3300
& e. right ,
3302
- right_prec < Precedence :: Assign ,
3303
3301
tokens,
3304
- right_fixup ,
3302
+ fixup . rightmost_subexpression_fixup ( false , false , Precedence :: Assign ) ,
3305
3303
) ;
3306
3304
}
3307
3305
@@ -3370,17 +3368,22 @@ pub(crate) mod printing {
3370
3368
#[ cfg( feature = "full" ) ]
3371
3369
binop_prec,
3372
3370
) ;
3371
+ let left_needs_group = match binop_prec {
3372
+ Precedence :: Assign => left_prec <= Precedence :: Range ,
3373
+ Precedence :: Compare => left_prec <= binop_prec,
3374
+ _ => left_prec < binop_prec,
3375
+ } ;
3373
3376
3374
- let ( right_prec, right_fixup) = fixup. rightmost_subexpression (
3375
- & e. right ,
3377
+ let right_fixup = fixup. rightmost_subexpression_fixup (
3378
+ #[ cfg( feature = "full" ) ]
3379
+ false ,
3380
+ #[ cfg( feature = "full" ) ]
3381
+ false ,
3376
3382
#[ cfg( feature = "full" ) ]
3377
3383
binop_prec,
3378
3384
) ;
3379
- let ( left_needs_group, right_needs_group) = match binop_prec {
3380
- Precedence :: Assign => ( left_prec <= Precedence :: Range , right_prec < binop_prec) ,
3381
- Precedence :: Compare => ( left_prec <= binop_prec, right_prec <= binop_prec) ,
3382
- _ => ( left_prec < binop_prec, right_prec <= binop_prec) ,
3383
- } ;
3385
+ let right_needs_group = binop_prec != Precedence :: Assign
3386
+ && right_fixup. rightmost_subexpression_precedence ( & e. right ) <= binop_prec;
3384
3387
3385
3388
print_subexpression ( & e. left , left_needs_group, tokens, left_fixup) ;
3386
3389
e. op . to_tokens ( tokens) ;
0 commit comments