about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJosh Chase <josh@jec.pw>2018-06-19 11:28:58 -0400
committerJosh Chase <josh@jec.pw>2018-06-19 12:13:35 -0400
commitee5ff2d9e8f2fcf7ef8ceefc5de78e5439ed7a21 (patch)
tree4e6cdcbe95ceda0bc3839d69912317fd41288819 /src
parent2077855e000210be5c89f4d7e17e495122686b28 (diff)
Add flag to the ListFormatting struct for nested imports
Diffstat (limited to 'src')
-rw-r--r--src/attr.rs1
-rw-r--r--src/closures.rs1
-rw-r--r--src/expr.rs2
-rw-r--r--src/imports.rs1
-rw-r--r--src/items.rs4
-rw-r--r--src/lists.rs6
-rw-r--r--src/macros.rs1
-rw-r--r--src/matches.rs1
-rw-r--r--src/overflow.rs1
-rw-r--r--src/reorder.rs1
-rw-r--r--src/types.rs1
-rw-r--r--src/vertical.rs1
12 files changed, 20 insertions, 1 deletions
diff --git a/src/attr.rs b/src/attr.rs
index 28e3e24ea09..efbd4872aae 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -247,6 +247,7 @@ impl Rewrite for ast::MetaItem {
                     shape: item_shape,
                     ends_with_newline: false,
                     preserve_newline: false,
+                    nested: false,
                     config: context.config,
                 };
                 let item_str = write_list(&item_vec, &fmt)?;
diff --git a/src/closures.rs b/src/closures.rs
index 3d0a52de0dc..257b8729f45 100644
--- a/src/closures.rs
+++ b/src/closures.rs
@@ -260,6 +260,7 @@ fn rewrite_closure_fn_decl(
         shape: arg_shape,
         ends_with_newline: false,
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
     let list_str = write_list(&item_vec, &fmt)?;
diff --git a/src/expr.rs b/src/expr.rs
index 112383e7e4c..0c2716a2dba 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1338,6 +1338,7 @@ pub fn rewrite_multiple_patterns(
         shape,
         ends_with_newline: false,
         preserve_newline: false,
+        nested: false,
         config: context.config,
     };
     write_list(&items, &fmt)
@@ -1902,6 +1903,7 @@ where
         shape,
         ends_with_newline: false,
         preserve_newline: false,
+        nested: false,
         config: context.config,
     };
     let list_str = write_list(&item_vec, &fmt)?;
diff --git a/src/imports.rs b/src/imports.rs
index 4740921c525..7e45bb55f0d 100644
--- a/src/imports.rs
+++ b/src/imports.rs
@@ -727,6 +727,7 @@ fn rewrite_nested_use_tree(
         shape: nested_shape,
         ends_with_newline,
         preserve_newline: true,
+        nested: has_nested_list,
         config: context.config,
     };
 
diff --git a/src/items.rs b/src/items.rs
index 38311abcba0..843d5839de9 100644
--- a/src/items.rs
+++ b/src/items.rs
@@ -533,6 +533,7 @@ impl<'a> FmtVisitor<'a> {
             shape,
             ends_with_newline: true,
             preserve_newline: true,
+            nested: false,
             config: self.config,
         };
 
@@ -2307,6 +2308,7 @@ fn rewrite_args(
         shape: Shape::legacy(budget, indent),
         ends_with_newline: tactic.ends_with_newline(context.config.indent_style()),
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
 
@@ -2494,6 +2496,7 @@ fn rewrite_where_clause_rfc_style(
         shape: clause_shape,
         ends_with_newline: true,
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
     let preds_str = write_list(&items.collect::<Vec<_>>(), &fmt)?;
@@ -2607,6 +2610,7 @@ fn rewrite_where_clause(
         shape: Shape::legacy(budget, offset),
         ends_with_newline: tactic.ends_with_newline(context.config.indent_style()),
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
     let preds_str = write_list(&item_vec, &fmt)?;
diff --git a/src/lists.rs b/src/lists.rs
index 5562602133b..97dd093b4f9 100644
--- a/src/lists.rs
+++ b/src/lists.rs
@@ -34,6 +34,8 @@ pub struct ListFormatting<'a> {
     pub ends_with_newline: bool,
     // Remove newlines between list elements for expressions.
     pub preserve_newline: bool,
+    // Nested import lists get some special handling for the "Mixed" list type
+    pub nested: bool,
     pub config: &'a Config,
 }
 
@@ -288,7 +290,8 @@ where
                 // 1 is space between separator and item.
                 if (line_len > 0 && line_len + 1 + total_width > formatting.shape.width)
                     || prev_item_had_post_comment
-                    || (prev_item_is_nested_import || (!first && inner_item.contains("::")))
+                    || (formatting.nested
+                        && (prev_item_is_nested_import || (!first && inner_item.contains("::"))))
                 {
                     result.push('\n');
                     result.push_str(indent_str);
@@ -824,6 +827,7 @@ pub fn struct_lit_formatting<'a>(
         shape,
         ends_with_newline,
         preserve_newline: true,
+        nested: false,
         config: context.config,
     }
 }
diff --git a/src/macros.rs b/src/macros.rs
index 9053aaebd90..801e04baad0 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -399,6 +399,7 @@ pub fn rewrite_macro_def(
         shape: arm_shape,
         ends_with_newline: true,
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
 
diff --git a/src/matches.rs b/src/matches.rs
index 9551dc36002..c179efc3963 100644
--- a/src/matches.rs
+++ b/src/matches.rs
@@ -224,6 +224,7 @@ fn rewrite_match_arms(
         shape: arm_shape,
         ends_with_newline: true,
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
 
diff --git a/src/overflow.rs b/src/overflow.rs
index 62675b4002c..f91ef38e2ee 100644
--- a/src/overflow.rs
+++ b/src/overflow.rs
@@ -388,6 +388,7 @@ impl<'a, T: 'a + Rewrite + ToExpr + Spanned> Context<'a, T> {
                 _ => false,
             },
             preserve_newline: false,
+            nested: false,
             config: self.context.config,
         };
 
diff --git a/src/reorder.rs b/src/reorder.rs
index 027b64e8317..ed6df1227ef 100644
--- a/src/reorder.rs
+++ b/src/reorder.rs
@@ -77,6 +77,7 @@ fn wrap_reorderable_items(
         shape,
         ends_with_newline: true,
         preserve_newline: false,
+        nested: false,
         config: context.config,
     };
 
diff --git a/src/types.rs b/src/types.rs
index 46d48e72763..44fdbee6efd 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -366,6 +366,7 @@ where
         shape: list_shape,
         ends_with_newline: tactic.ends_with_newline(context.config.indent_style()),
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
 
diff --git a/src/vertical.rs b/src/vertical.rs
index 1595b22c5c4..a8a8ee6cec3 100644
--- a/src/vertical.rs
+++ b/src/vertical.rs
@@ -252,6 +252,7 @@ fn rewrite_aligned_items_inner<T: AlignedItem>(
         shape: item_shape,
         ends_with_newline: true,
         preserve_newline: true,
+        nested: false,
         config: context.config,
     };
     write_list(&items, &fmt)