about summary refs log tree commit diff
path: root/src/expr.rs
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2017-04-06 21:17:22 +1200
committerNick Cameron <ncameron@mozilla.com>2017-04-06 21:17:22 +1200
commitee9daade3597dc6e94855ab9e90fc9ebfbea6a1f (patch)
tree94864cadabcb325a88162b010da8b3cb7346d622 /src/expr.rs
parenta7183766b95d43700ddc583b9e9f5d4bcfa91e58 (diff)
Fix a bug with overlong function calls
Diffstat (limited to 'src/expr.rs')
-rw-r--r--src/expr.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/expr.rs b/src/expr.rs
index 04634e2645e..2723c4099c1 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1715,10 +1715,19 @@ fn rewrite_call_inner<R>(context: &RewriteContext,
         }
     }
 
+    let one_line_width = shape.width.checked_sub(used_width + 2);
+    let one_line_width = match one_line_width {
+        Some(olw) => olw,
+        None => return Err(Ordering::Greater),
+    };
+    let one_line_shape = Shape {
+        width: one_line_width,
+        ..nested_shape
+    };
     let tactic =
         definitive_tactic(&item_vec,
                           ListTactic::LimitedHorizontalVertical(context.config.fn_call_width),
-                          nested_shape.width);
+                          one_line_width);
 
     // Replace the stub with the full overflowing last argument if the rewrite
     // succeeded and its first line fits with the other arguments.
@@ -1741,7 +1750,7 @@ fn rewrite_call_inner<R>(context: &RewriteContext,
         } else {
             context.config.trailing_comma
         },
-        shape: nested_shape,
+        shape: one_line_shape,
         ends_with_newline: false,
         config: context.config,
     };