Skip to content

Commit 066aeb7

Browse files
committed
---
yaml --- r: 4162 b: refs/heads/master c: e9b2487 h: refs/heads/master v: v3
1 parent e0d2fc1 commit 066aeb7

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: a6260ebaa2b3ba6c13cd6bc6d6cbbbe5b7c96595
2+
refs/heads/master: e9b2487db73a6088267650538f20d12c5a5dbf33

trunk/src/comp/syntax/print/pprust.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ fn print_expr(&ps s, &@ast::expr expr) {
741741
word(s.s, "}");
742742
}
743743
case (ast::expr_call(?func, ?args)) {
744-
print_expr(s, func);
744+
print_expr_parens_if_unary(s, func);
745745
popen(s);
746746
commasep_exprs(s, inconsistent, args);
747747
pclose(s);
@@ -909,12 +909,12 @@ fn print_expr(&ps s, &@ast::expr expr) {
909909
print_expr(s, rhs);
910910
}
911911
case (ast::expr_field(?expr, ?id)) {
912-
print_expr(s, expr);
912+
print_expr_parens_if_unary(s, expr);
913913
word(s.s, ".");
914914
word(s.s, id);
915915
}
916916
case (ast::expr_index(?expr, ?index)) {
917-
print_expr(s, expr);
917+
print_expr_parens_if_unary(s, expr);
918918
word(s.s, ".");
919919
popen(s);
920920
print_expr(s, index);
@@ -1051,6 +1051,16 @@ fn print_expr(&ps s, &@ast::expr expr) {
10511051
end(s);
10521052
}
10531053

1054+
fn print_expr_parens_if_unary(&ps s, &@ast::expr ex) {
1055+
auto parens = alt ex.node {
1056+
ast::expr_unary(_, _) { true }
1057+
_ { false }
1058+
};
1059+
if parens { popen(s); }
1060+
print_expr(s, ex);
1061+
if parens { pclose(s); }
1062+
}
1063+
10541064
fn print_decl(&ps s, &@ast::decl decl) {
10551065
maybe_print_comment(s, decl.span.lo);
10561066
alt (decl.node) {

0 commit comments

Comments
 (0)