about summary refs log tree commit diff
diff options
context:
space:
mode:
authorcsmoe <35686186+csmoe@users.noreply.github.com>2018-05-02 22:11:50 +0800
committercsmoe <35686186+csmoe@users.noreply.github.com>2018-05-03 10:26:53 +0800
commit8c8676cd30009a028fc8ea2cceea563abc451b53 (patch)
treeaa4a9da738328117f7287dc0495693dad358ea03
parent36c49d703a429ff2d324453b11a2f243491fb444 (diff)
fix merge_mix
-rw-r--r--src/imports.rs21
-rw-r--r--tests/source/configs/imports_layout/merge_mixed.rs6
-rw-r--r--tests/target/configs/imports_layout/merge_mixed.rs7
-rw-r--r--tests/target/imports.rs20
4 files changed, 29 insertions, 25 deletions
diff --git a/src/imports.rs b/src/imports.rs
index 669cf795bc7..05b10519d45 100644
--- a/src/imports.rs
+++ b/src/imports.rs
@@ -693,19 +693,20 @@ fn rewrite_nested_use_tree(
                 _ => false,
             })
     });
-    let (tactic, remaining_width) = if has_nested_list {
-        (DefinitiveListTactic::Vertical, 0)
+
+    let remaining_width = if has_nested_list {
+        0
     } else {
-        let remaining_width = shape.width.checked_sub(2).unwrap_or(0);
-        let tactic = definitive_tactic(
-            &list_items,
-            context.config.imports_layout(),
-            Separator::Comma,
-            remaining_width,
-        );
-        (tactic, remaining_width)
+        shape.width.checked_sub(2).unwrap_or(0)
     };
 
+    let tactic = definitive_tactic(
+        &list_items,
+        context.config.imports_layout(),
+        Separator::Comma,
+        remaining_width,
+    );
+
     let ends_with_newline = context.config.imports_indent() == IndentStyle::Block
         && tactic != DefinitiveListTactic::Horizontal;
     let fmt = ListFormatting {
diff --git a/tests/source/configs/imports_layout/merge_mixed.rs b/tests/source/configs/imports_layout/merge_mixed.rs
new file mode 100644
index 00000000000..bd09079a595
--- /dev/null
+++ b/tests/source/configs/imports_layout/merge_mixed.rs
@@ -0,0 +1,6 @@
+// rustfmt-imports_indent: Block
+// rustfmt-merge_imports: true
+// rustfmt-imports_layout: Mixed
+
+use std::{fmt, io, str};
+use std::str::FromStr;
diff --git a/tests/target/configs/imports_layout/merge_mixed.rs b/tests/target/configs/imports_layout/merge_mixed.rs
new file mode 100644
index 00000000000..d67979840d0
--- /dev/null
+++ b/tests/target/configs/imports_layout/merge_mixed.rs
@@ -0,0 +1,7 @@
+// rustfmt-imports_indent: Block
+// rustfmt-merge_imports: true
+// rustfmt-imports_layout: Mixed
+
+use std::{
+    fmt, io, str::{self, FromStr},
+};
diff --git a/tests/target/imports.rs b/tests/target/imports.rs
index 2e195520a06..b3d78e609fe 100644
--- a/tests/target/imports.rs
+++ b/tests/target/imports.rs
@@ -80,18 +80,12 @@ use self::unix::{};
 
 // nested imports
 use foo::{
-    a,
-    b,
+    a, b,
     bar::{
-        baz,
-        foo::{a, b, cxxxxxxxxxxxxx, yyyyyyyyyyyyyy, zzzzzzzzzzzzzzzz},
-        qux,
-        xxxxxxxxxxx,
-        yyyyyyyyyyyyy,
-        zzzzzzzzzzzzzzzz,
+        baz, foo::{a, b, cxxxxxxxxxxxxx, yyyyyyyyyyyyyy, zzzzzzzzzzzzzzzz}, qux, xxxxxxxxxxx,
+        yyyyyyyyyyyyy, zzzzzzzzzzzzzzzz,
     },
-    boo,
-    c,
+    boo, c,
 };
 
 use fooo::{
@@ -99,11 +93,7 @@ use fooo::{
         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,
         zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz,
     },
-    bar,
-    bar::*,
-    x,
-    y,
-    z,
+    bar, bar::*, x, y, z,
 };
 
 // nested imports with a single sub-tree.