@@ -802,7 +802,7 @@ fn print_expr(s: ps, expr: @ast::expr) {
802
802
pclose ( s) ;
803
803
}
804
804
ast:: expr_call ( func, args) {
805
- print_expr_parens_if_unary ( s, func) ;
805
+ print_expr_parens_if_unary_or_ret ( s, func) ;
806
806
popen ( s) ;
807
807
commasep_exprs ( s, inconsistent, args) ;
808
808
pclose ( s) ;
@@ -826,18 +826,18 @@ fn print_expr(s: ps, expr: @ast::expr) {
826
826
}
827
827
ast:: expr_binary ( op, lhs, rhs) {
828
828
let prec = operator_prec ( op) ;
829
- print_maybe_parens ( s, lhs, prec) ;
829
+ print_op_maybe_parens ( s, lhs, prec) ;
830
830
space ( s. s ) ;
831
831
word_space ( s, ast_util:: binop_to_str ( op) ) ;
832
- print_maybe_parens ( s, rhs, prec + 1 ) ;
832
+ print_op_maybe_parens ( s, rhs, prec + 1 ) ;
833
833
}
834
834
ast:: expr_unary ( op, expr) {
835
835
word ( s. s , ast_util:: unop_to_str ( op) ) ;
836
- print_maybe_parens ( s, expr, parse:: parser:: unop_prec) ;
836
+ print_op_maybe_parens ( s, expr, parse:: parser:: unop_prec) ;
837
837
}
838
838
ast:: expr_lit ( lit) { print_literal ( s, lit) ; }
839
839
ast:: expr_cast ( expr, ty) {
840
- print_maybe_parens ( s, expr, parse:: parser:: as_prec) ;
840
+ print_op_maybe_parens ( s, expr, parse:: parser:: as_prec) ;
841
841
space ( s. s ) ;
842
842
word_space ( s, "as" ) ;
843
843
print_type ( s, ty) ;
@@ -965,12 +965,12 @@ fn print_expr(s: ps, expr: @ast::expr) {
965
965
print_expr ( s, rhs) ;
966
966
}
967
967
ast:: expr_field ( expr, id) {
968
- print_expr_parens_if_unary ( s, expr) ;
968
+ print_expr_parens_if_unary_or_ret ( s, expr) ;
969
969
word ( s. s , "." ) ;
970
970
word ( s. s , id) ;
971
971
}
972
972
ast:: expr_index ( expr, index) {
973
- print_expr_parens_if_unary ( s, expr) ;
973
+ print_expr_parens_if_unary_or_ret ( s, expr) ;
974
974
word ( s. s , "[" ) ;
975
975
print_expr ( s, index) ;
976
976
word ( s. s , "]" ) ;
@@ -1072,8 +1072,12 @@ fn print_expr(s: ps, expr: @ast::expr) {
1072
1072
end ( s) ;
1073
1073
}
1074
1074
1075
- fn print_expr_parens_if_unary ( s : ps , ex : @ast:: expr ) {
1076
- let parens = alt ex. node { ast:: expr_unary ( _, _) { true } _ { false } } ;
1075
+ fn print_expr_parens_if_unary_or_ret ( s : ps , ex : @ast:: expr ) {
1076
+ let parens = alt ex. node {
1077
+ ast:: expr_fail ( _) | ast:: expr_ret ( _) | ast:: expr_put ( _) |
1078
+ ast:: expr_unary ( _, _) { true }
1079
+ _ { false }
1080
+ } ;
1077
1081
if parens { popen ( s) ; }
1078
1082
print_expr ( s, ex) ;
1079
1083
if parens { pclose ( s) ; }
@@ -1368,7 +1372,7 @@ fn need_parens(expr: @ast::expr, outer_prec: int) -> bool {
1368
1372
}
1369
1373
}
1370
1374
1371
- fn print_maybe_parens ( s : ps , expr : @ast:: expr , outer_prec : int ) {
1375
+ fn print_op_maybe_parens ( s : ps , expr : @ast:: expr , outer_prec : int ) {
1372
1376
let add_them = need_parens ( expr, outer_prec) ;
1373
1377
if add_them { popen ( s) ; }
1374
1378
print_expr ( s, expr) ;
0 commit comments