diff --git a/src/comp/syntax/print/pprust.rs b/src/comp/syntax/print/pprust.rs index d6af92cca0db..487e262415ed 100644 --- a/src/comp/syntax/print/pprust.rs +++ b/src/comp/syntax/print/pprust.rs @@ -625,7 +625,7 @@ fn print_if(s: ps, test: @ast::expr, blk: ast::blk, cbox(s, indent_unit - 1u); ibox(s, 0u); word(s.s, " else if "); - print_expr(s, i); + print_maybe_parens_discrim(s, i); space(s.s); print_block(s, t); do_else(s, e); diff --git a/src/test/run-pass/wierd-exprs.rs b/src/test/run-pass/wierd-exprs.rs index a24e34d6b6a5..eef968adcb7c 100644 --- a/src/test/run-pass/wierd-exprs.rs +++ b/src/test/run-pass/wierd-exprs.rs @@ -21,8 +21,15 @@ fn what() { } fn zombiejesus() { - do { while (ret) { if (ret) { alt (ret) { _ { ret ? ret : ret } } } } } - while ret + do { + while (ret) { + if (ret) { + alt (ret) { _ { ret ? ret : ret } }; + } else if (ret) { + ret; + } + } + } while ret } fn notsure() {