From 80d129aa45e897b569e7f4aed29b272860e639ad Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Thu, 23 Aug 2012 16:58:43 -0700 Subject: [PATCH] Parenthesize unary move exprs in prettyprinter Closes #3220 --- src/libsyntax/print/pprust.rs | 7 ++++++- src/test/run-pass/issue-3220.rs | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 src/test/run-pass/issue-3220.rs diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index bcd221633420..ca958acb10bd 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1234,7 +1234,12 @@ fn print_expr(s: ps, &&expr: @ast::expr) { print_block(s, blk); } ast::expr_copy(e) => { word_space(s, ~"copy"); print_expr(s, e); } - ast::expr_unary_move(e) => { word_space(s, ~"move"); print_expr(s, e); } + ast::expr_unary_move(e) => { + popen(s); + word_space(s, ~"move"); + print_expr(s, e); + pclose(s); + } ast::expr_move(lhs, rhs) => { print_expr(s, lhs); space(s.s); diff --git a/src/test/run-pass/issue-3220.rs b/src/test/run-pass/issue-3220.rs new file mode 100644 index 000000000000..da0d3dc91d25 --- /dev/null +++ b/src/test/run-pass/issue-3220.rs @@ -0,0 +1,7 @@ +struct thing { x: int; new () { self.x = 0; } drop { } } +impl thing { fn f(self) {} } + +fn main() { + let z = thing(); + (move z).f(); +}