From 9ae843ab1c77b9c5cca03b452d5926a0fccf3197 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Tue, 14 Jun 2011 11:32:20 -0700 Subject: [PATCH] Print parens on unops when necessary. 'make reformat' output now builds to stage3. --- src/comp/front/parser.rs | 1 + src/comp/pretty/pprust.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 258966ff052..fb298dbbd84 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -1265,6 +1265,7 @@ fn parse_binops(&parser p) -> @ast::expr { ret parse_more_binops(p, parse_prefix_expr(p), 0); } +const int unop_prec = 100; const int as_prec = 5; fn parse_more_binops(&parser p, @ast::expr lhs, int min_prec) diff --git a/src/comp/pretty/pprust.rs b/src/comp/pretty/pprust.rs index e0e975362bd..701eb8d45fa 100644 --- a/src/comp/pretty/pprust.rs +++ b/src/comp/pretty/pprust.rs @@ -551,7 +551,7 @@ fn print_expr(&ps s, &@ast::expr expr) { } case (ast::expr_unary(?op,?expr,_)) { word(s.s, ast::unop_to_str(op)); - print_expr(s, expr); + print_maybe_parens(s, expr, front::parser::unop_prec); } case (ast::expr_lit(?lit,_)) { print_literal(s, lit);