about summary refs log tree commit diff
path: root/src/expr.rs
diff options
context:
space:
mode:
authorGaëtan Cassiers <gaetan.cassiers@gmail.com>2015-05-24 23:46:02 +0200
committerGaëtan Cassiers <gaetan.cassiers@gmail.com>2015-05-24 23:46:02 +0200
commit09bd4a74e4dfa64fd1223662eef71bf6bd9c2f44 (patch)
tree10ce1751bb8bd7c9f8c6b5b956b5317621a64df5 /src/expr.rs
parentc1fc693c5e5676f93a331a0498dc6ba36193cd66 (diff)
Avoid dangling )
Diffstat (limited to 'src/expr.rs')
-rw-r--r--src/expr.rs19
1 files changed, 4 insertions, 15 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) => {