]> git.lizzy.rs Git - rust.git/commitdiff
Make definitive_tactic more generic with separator length
authorSeiichi Uchida <seuchida@gmail.com>
Sat, 29 Jul 2017 13:12:18 +0000 (22:12 +0900)
committerSeiichi Uchida <seuchida@gmail.com>
Sat, 29 Jul 2017 13:13:23 +0000 (22:13 +0900)
src/expr.rs
src/imports.rs
src/items.rs
src/lists.rs
src/types.rs
src/vertical.rs

index 68272f5af84288fcd2d51a79d680a99f01aefb3a..5621bcbf1b9854046d875e82a6a02562ef3d19fc 100644 (file)
@@ -485,7 +485,7 @@ pub fn rewrite_array<'a, I>(
                 Some(width) => {
                     let tactic =
                         ListTactic::LimitedHorizontalVertical(context.config.array_width());
-                    definitive_tactic(&items, tactic, width)
+                    definitive_tactic(&items, tactic, 2, width)
                 }
                 None => DefinitiveListTactic::Vertical,
             }
@@ -494,6 +494,7 @@ pub fn rewrite_array<'a, I>(
             definitive_tactic(
                 &items,
                 ListTactic::LimitedHorizontalVertical(context.config.array_width()),
+                2,
                 nested_shape.width,
             )
         } else {
@@ -591,7 +592,12 @@ fn rewrite_closure_fn_decl(
         .width
         .checked_sub(ret_str.len() + 1)
         .unwrap_or(0);
-    let tactic = definitive_tactic(&item_vec, ListTactic::HorizontalVertical, horizontal_budget);
+    let tactic = definitive_tactic(
+        &item_vec,
+        ListTactic::HorizontalVertical,
+        2,
+        horizontal_budget,
+    );
     let arg_shape = match tactic {
         DefinitiveListTactic::Horizontal => try_opt!(arg_shape.sub_width(ret_str.len() + 1)),
         _ => arg_shape,
@@ -1668,7 +1674,7 @@ fn rewrite_match_pattern(
     );
 
     let items: Vec<_> = pat_strs.into_iter().map(ListItem::from_str).collect();
-    let tactic = definitive_tactic(&items, ListTactic::HorizontalVertical, pat_shape.width);
+    let tactic = definitive_tactic(&items, ListTactic::HorizontalVertical, 3, pat_shape.width);
     let fmt = ListFormatting {
         tactic: tactic,
         separator: " |",
@@ -2216,6 +2222,7 @@ fn try_overflow_last_arg<'a, T>(
     let tactic = definitive_tactic(
         &*item_vec,
         ListTactic::LimitedHorizontalVertical(args_max_width),
+        2,
         one_line_width,
     );
 
@@ -2756,6 +2763,7 @@ fn rewrite_tuple_in_visual_indent_style<'a, T>(
     let tactic = definitive_tactic(
         &item_vec,
         ListTactic::HorizontalVertical,
+        2,
         nested_shape.width,
     );
     let fmt = ListFormatting {
index 00b6711cf9bbef6547c752bfde1a2de88c787035..bc743649e844d96da20438ed4df3e76d7e4330d9 100644 (file)
@@ -451,6 +451,7 @@ fn rewrite_use_list(
     let tactic = definitive_tactic(
         &items[first_index..],
         context.config.imports_layout(),
+        2,
         remaining_width,
     );
 
index f21277e9e83a664655fd7d26b420a05b0860de1a..8b4fd4c725e10768fb1950770dfc71f8de774757 100644 (file)
@@ -2241,6 +2241,7 @@ enum ArgumentKind<'a> {
     let tactic = definitive_tactic(
         &arg_items,
         context.config.fn_args_density().to_list_tactic(),
+        2,
         one_line_budget,
     );
     let budget = match tactic {
@@ -2423,7 +2424,12 @@ pub fn format_generics_item_list<I>(
 {
     let item_vec = items.collect::<Vec<_>>();
 
-    let tactic = definitive_tactic(&item_vec, ListTactic::HorizontalVertical, one_line_budget);
+    let tactic = definitive_tactic(
+        &item_vec,
+        ListTactic::HorizontalVertical,
+        2,
+        one_line_budget,
+    );
     let fmt = ListFormatting {
         tactic: tactic,
         separator: ",",
@@ -2636,7 +2642,7 @@ fn rewrite_where_clause(
     let item_vec = items.collect::<Vec<_>>();
     // FIXME: we don't need to collect here if the where_layout isn't
     // HorizontalVertical.
-    let tactic = definitive_tactic(&item_vec, context.config.where_layout(), budget);
+    let tactic = definitive_tactic(&item_vec, context.config.where_layout(), 2, budget);
 
     let mut comma_tactic = context.config.trailing_comma();
     // Kind of a hack because we don't usually have trailing commas in where clauses.
index 5a6225a5903a49c603829c51757646a71c501453..56ac10691de103cb96d25b8fbd9a3576100c03ab 100644 (file)
@@ -135,7 +135,12 @@ pub fn ends_with_newline(&self, indent_style: IndentStyle) -> bool {
     }
 }
 
-pub fn definitive_tactic<I, T>(items: I, tactic: ListTactic, width: usize) -> DefinitiveListTactic
+pub fn definitive_tactic<I, T>(
+    items: I,
+    tactic: ListTactic,
+    sep_len: usize,
+    width: usize,
+) -> DefinitiveListTactic
 where
     I: IntoIterator<Item = T> + Clone,
     T: AsRef<ListItem>,
@@ -155,7 +160,6 @@ pub fn definitive_tactic<I, T>(items: I, tactic: ListTactic, width: usize) -> De
     };
 
     let (sep_count, total_width) = calculate_width(items.clone());
-    let sep_len = ", ".len(); // FIXME: make more generic?
     let total_sep_len = sep_len * sep_count.checked_sub(1).unwrap_or(0);
     let real_total = total_width + total_sep_len;
 
@@ -640,7 +644,7 @@ pub fn struct_lit_tactic(
             (IndentStyle::Visual, 1) => ListTactic::HorizontalVertical,
             _ => context.config.struct_lit_multiline_style().to_list_tactic(),
         };
-        definitive_tactic(items, prelim_tactic, h_shape.width)
+        definitive_tactic(items, prelim_tactic, 2, h_shape.width)
     } else {
         DefinitiveListTactic::Vertical
     }
index 71e6bcdcd1893d56d9df35073fe572cac55c3b6b..3144efe9db06ec3a9df1b27025e6c485dfe63280 100644 (file)
@@ -348,7 +348,7 @@ enum ArgumentKind<T>
 
     let item_vec: Vec<_> = items.collect();
 
-    let tactic = definitive_tactic(&*item_vec, ListTactic::HorizontalVertical, budget);
+    let tactic = definitive_tactic(&*item_vec, ListTactic::HorizontalVertical, 2, budget);
 
     let fmt = ListFormatting {
         tactic: tactic,
index 57876d644c23e777fa586d9520620ad2d517ec57..08ef6281baa5bb590d6a6ded64a027d0de289b16 100644 (file)
@@ -221,7 +221,7 @@ fn rewrite_aligned_items_inner<T: AlignedItem>(
         span.hi,
     ).collect::<Vec<_>>();
 
-    let tactic = definitive_tactic(&items, ListTactic::HorizontalVertical, one_line_width);
+    let tactic = definitive_tactic(&items, ListTactic::HorizontalVertical, 2, one_line_width);
 
     let fmt = ListFormatting {
         tactic: tactic,