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);