]> git.lizzy.rs Git - rust.git/commitdiff
Avoid regression
authortopecongiro <seuchida@gmail.com>
Wed, 26 Jul 2017 08:42:52 +0000 (17:42 +0900)
committertopecongiro <seuchida@gmail.com>
Wed, 26 Jul 2017 08:42:52 +0000 (17:42 +0900)
src/expr.rs

index 99208b92134053cadd5cb97413dc88a60296b614..7cebf793c600b97dbc1128102280d3d1da3a55a5 100644 (file)
@@ -2281,10 +2281,10 @@ fn rewrite_last_closure(
         let body_shape = try_opt!(shape.offset_left(extra_offset));
         // When overflowing the closure which consists of a single control flow expression,
         // force to use block if its condition uses multi line.
-        if rewrite_cond(context, body, body_shape)
-            .map(|cond| cond.contains('\n'))
-            .unwrap_or(false)
-        {
+        let is_multi_lined_cond = rewrite_cond(context, body, body_shape)
+            .map(|cond| cond.contains('\n') || cond.len() > body_shape.width)
+            .unwrap_or(false);
+        if is_multi_lined_cond {
             return rewrite_closure_with_block(context, body_shape, &prefix, body);
         }