diff --git a/src/items.rs b/src/items.rs index eeb05bc9201..001136b538c 100644 --- a/src/items.rs +++ b/src/items.rs @@ -136,11 +136,12 @@ impl<'a> FmtVisitor<'a> { debug!("rewrite_fn: one_line_budget: {}, multi_line_budget: {}, arg_indent: {}", one_line_budget, multi_line_budget, arg_indent); + // Check if vertical layout was forced by compute_budget_for_args. if one_line_budget <= 0 { if config!(fn_args_paren_newline) { result.push('\n'); result.push_str(&make_indent(arg_indent)); - arg_indent = arg_indent + 1; + arg_indent = arg_indent + 1; // extra space for `(` result.push('('); } else { result.push_str("(\n"); @@ -378,15 +379,14 @@ impl<'a> FmtVisitor<'a> { // Didn't work. we must force vertical layout and put args on a newline. if let None = budgets { - // 6 = new indent + `()` - let used_space = indent + 6; + let new_indent = indent + 4; + let used_space = new_indent + 2; // account for `(` and `)` let max_space = config!(ideal_width) + config!(leeway); if used_space > max_space { // Whoops! bankrupt. // TODO take evasive action, perhaps kill the indent or something. } else { - // 5 = new indent + `(` - budgets = Some((0, max_space - used_space, indent + 4)); + budgets = Some((0, max_space - used_space, new_indent)); } }