From 09bd4a74e4dfa64fd1223662eef71bf6bd9c2f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Cassiers?= Date: Sun, 24 May 2015 23:46:02 +0200 Subject: [PATCH] Avoid dangling ) --- src/expr.rs | 19 ++++--------------- tests/idem/paren.rs | 13 ++----------- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/expr.rs b/src/expr.rs index c242322a51d..79234eb7f13 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -127,24 +127,13 @@ impl<'a> FmtVisitor<'a> { fn rewrite_paren(&mut self, subexpr: &ast::Expr, width: usize, offset: usize) -> String { debug!("rewrite_paren, width: {}, offset: {}", width, offset); - // 1 is for opening paren - let subexpr_str = self.rewrite_expr(subexpr, width-1, offset+1); + // 1 is for opening paren, 2 is for opening+closing, we want to keep the closing + // paren on the same line as the subexpr + let subexpr_str = self.rewrite_expr(subexpr, width-2, offset+1); debug!("rewrite_paren, subexpr_str: `{}`", subexpr_str); - let mut lines = subexpr_str.rsplit('\n'); - let last_line_len = lines.next().unwrap().len(); - let last_line_offset = match lines.next() { - None => offset+1, - Some(_) => 0, - }; - if width + offset - last_line_offset - last_line_len > 0 { - format!("({})", subexpr_str) - } else { - // FIXME That's correct unless we have width < 2. Return an Option for such cases ? - format!("({}\n{} )", subexpr_str, make_indent(offset)) - } + format!("({})", subexpr_str) } - pub fn rewrite_expr(&mut self, expr: &ast::Expr, width: usize, offset: usize) -> String { match expr.node { ast::Expr_::ExprLit(ref l) => { diff --git a/tests/idem/paren.rs b/tests/idem/paren.rs index f04068e3462..98169883575 100644 --- a/tests/idem/paren.rs +++ b/tests/idem/paren.rs @@ -2,15 +2,6 @@ fn foo() { let very_long_variable_name = (a + first + simple + test); - let very_long_variable_name = (write + something + here + to + fill + the + line + 12 + 34 + 567 - ); - let very_long_variable_name = (write + something + here + to + fill + the + line + 12 + 34 + 567 - + 78); - let very_long_variable_name = (write + something + here + to + fill + the + line + 12 + 34 + 567 - + 78 + fill + another + line + AAAA + BBBBBBB + CCCCCCCCCCCCCCCCC - ); - let very_long_variable_name = (write + something + here + to + fill + the + line + 12 + 34 + 567 - + 78 + fill + another + line + AAAA + BBBBBBB + CCCCCCCCCCCCCCC + - DDDDDDD + EEEEEE); - + let very_long_variable_name = (a + first + simple + test + AAAAAAAAAAAAA + BBBBBBBBBBBBBBBBBB + + b + c); }