diff --git a/src/expr.rs b/src/expr.rs index e91b164a186..c5fb9355b84 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -105,14 +105,8 @@ impl<'a> FmtVisitor<'a> { let args: Vec<_> = args.iter().map(|e| (self.rewrite_expr(e, remaining_width, offset), String::new())).collect(); - // TODO move this into write_list - let tactics = if args.iter().any(|&(ref s, _)| s.contains('\n')) { - ListTactic::Vertical - } else { - ListTactic::HorizontalVertical - }; let fmt = ListFormatting { - tactic: tactics, + tactic: ListTactic::HorizontalVertical, separator: ",", trailing_separator: SeparatorTactic::Never, indent: offset, @@ -161,13 +155,8 @@ impl<'a> FmtVisitor<'a> { // FIXME comments let field_strs: Vec<_> = field_strs.into_iter().map(|s| (s, String::new())).collect(); - let tactics = if field_strs.iter().any(|&(ref s, _)| s.contains('\n')) { - ListTactic::Vertical - } else { - ListTactic::HorizontalVertical - }; let fmt = ListFormatting { - tactic: tactics, + tactic: ListTactic::HorizontalVertical, separator: ",", trailing_separator: if base.is_some() { SeparatorTactic::Never diff --git a/src/lists.rs b/src/lists.rs index 58e810fce20..61ad8c08a0c 100644 --- a/src/lists.rs +++ b/src/lists.rs @@ -79,7 +79,8 @@ pub fn write_list<'b>(items: &[(String, String)], formatting: &ListFormatting<'b if tactic == ListTactic::HorizontalVertical { debug!("write_list: total_width: {}, total_sep_len: {}, h_width: {}", total_width, total_sep_len, formatting.h_width); - tactic = if fits_single { + tactic = if fits_single && + !items.iter().any(|&(ref s, _)| s.contains('\n')) { ListTactic::Horizontal } else { ListTactic::Vertical