Merge pull request #1586 from topecongiro/minor

Fix minor bugs
This commit is contained in:
Nick Cameron 2017-05-26 08:43:52 +12:00 committed by GitHub
commit 3d135ebba4
8 changed files with 45 additions and 32 deletions

View file

@ -1887,14 +1887,12 @@ fn rewrite_index(expr: &ast::Expr,
("[", "]")
};
let budget = shape
.width
.checked_sub(expr_str.len() + lbr.len() + rbr.len())
.unwrap_or(0);
let index_str = index.rewrite(context, Shape::legacy(budget, shape.indent));
if let Some(index_str) = index_str {
let offset = expr_str.len() + lbr.len();
if let Some(index_shape) = shape.visual_indent(offset).sub_width(offset + rbr.len()) {
if let Some(index_str) = index.rewrite(context, index_shape) {
return Some(format!("{}{}{}{}", expr_str, lbr, index_str, rbr));
}
}
let indent = shape.indent.block_indent(&context.config);
let indent = indent.to_string(&context.config);

View file

@ -1564,7 +1564,12 @@ fn rewrite_fn_base(context: &RewriteContext,
// Args.
let (mut one_line_budget, mut multi_line_budget, mut arg_indent) =
try_opt!(compute_budgets_for_args(context, &result, indent, ret_str_len, newline_brace));
try_opt!(compute_budgets_for_args(context,
&result,
indent,
ret_str_len,
newline_brace,
has_braces));
if context.config.fn_args_layout() == IndentStyle::Block {
arg_indent = indent.block_indent(context.config);
@ -1906,7 +1911,8 @@ fn compute_budgets_for_args(context: &RewriteContext,
result: &str,
indent: Indent,
ret_str_len: usize,
newline_brace: bool)
newline_brace: bool,
has_braces: bool)
-> Option<((usize, usize, Indent))> {
debug!("compute_budgets_for_args {} {:?}, {}, {}",
result.len(),
@ -1915,11 +1921,18 @@ fn compute_budgets_for_args(context: &RewriteContext,
newline_brace);
// Try keeping everything on the same line.
if !result.contains('\n') {
// 3 = `() `, space is before ret_string.
let mut used_space = indent.width() + result.len() + ret_str_len + 3;
// 2 = `()`, 3 = `() `, space is before ret_string.
let overhead = if ret_str_len == 0 { 2 } else { 3 };
let mut used_space = indent.width() + result.len() + ret_str_len + overhead;
if has_braces {
if !newline_brace {
// 2 = `{}`
used_space += 2;
}
} else {
// 1 = `;`
used_space += 1;
}
let one_line_budget = context
.config
.max_width()

View file

@ -14,3 +14,5 @@ impl Handle {
fn veeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee, b: SecondTypeeeeeeeeeeeeeeeeeeeeeee) {}
fn veeeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee, b: SecondTypeeeeeeeeeeeeeeeeeeeeeee) {}
fn veeeeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee, b: SecondTypeeeeeeeeeeeeeeeeeeeeeee) {}

View file

@ -16,17 +16,7 @@ fn main() {
..something
};
fn foo(a: i32,
a: i32,
a: i32,
a: i32,
a: i32,
a: i32,
a: i32,
a: i32,
a: i32,
a: i32,
a: i32) {
fn foo(a: i32, a: i32, a: i32, a: i32, a: i32, a: i32, a: i32, a: i32, a: i32, a: i32, a: i32) {
}
let str = "AAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAa";

View file

@ -16,6 +16,9 @@ impl Handle {
// Long function without return type that should not be reformated.
fn veeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee, b: SecondTypeeeeeeeeeeeeeeeeeeeeeee) {}
fn veeeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee,
fn veeeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee, b: SecondTypeeeeeeeeeeeeeeeeeeeeeee) {
}
fn veeeeeeeeeeeeeeeeeeeeeeery_long_name(a: FirstTypeeeeeeeeee,
b: SecondTypeeeeeeeeeeeeeeeeeeeeeee) {
}

View file

@ -0,0 +1,7 @@
// rustfmt-max_width: 80
fn foo() {
polyfill::slice::fill(&mut self.pending[padding_pos..
(self.algorithm.block_len - 8)],
0);
}