diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 3744b7a8f6c0..94a255910073 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1217,6 +1217,11 @@ pub fn print_expr(s: @ps, &&expr: @ast::expr) { ast::expr_addr_of(m, expr) => { word(s.s, ~"&"); print_mutability(s, m); + // Avoid `& &e` => `&&e`. + match (m, &expr.node) { + (ast::m_imm, &ast::expr_addr_of(*)) => space(s.s), + _ => { } + } print_expr(s, expr); } ast::expr_lit(lit) => print_literal(s, lit),