Skip to content

Commit 580d228

Browse files
committed
Fix parenthesization of tuple field expressions in function calls
1 parent 0e5c568 commit 580d228

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

src/expr.rs

+6-11
Original file line numberDiff line numberDiff line change
@@ -3405,22 +3405,17 @@ pub(crate) mod printing {
34053405
fn print_expr_call(e: &ExprCall, tokens: &mut TokenStream, fixup: FixupContext) {
34063406
outer_attrs_to_tokens(&e.attrs, tokens);
34073407

3408-
let call_precedence = if let Expr::Field(_) = &*e.func {
3409-
Precedence::MIN
3410-
} else {
3411-
Precedence::Unambiguous
3412-
};
34133408
let func_fixup = fixup.leftmost_subexpression_with_begin_operator(
34143409
#[cfg(feature = "full")]
34153410
true,
34163411
false,
34173412
);
3418-
print_subexpression(
3419-
&e.func,
3420-
func_fixup.leading_precedence(&e.func) < call_precedence,
3421-
tokens,
3422-
func_fixup,
3423-
);
3413+
let needs_group = if let Expr::Field(func) = &*e.func {
3414+
func.member.is_named()
3415+
} else {
3416+
func_fixup.leading_precedence(&e.func) < Precedence::Unambiguous
3417+
};
3418+
print_subexpression(&e.func, needs_group, tokens, func_fixup);
34243419

34253420
e.paren_token.surround(tokens, |tokens| {
34263421
e.args.to_tokens(tokens);

0 commit comments

Comments
 (0)