Put closing paren on the next line when the last arg contains comment
This commit is contained in:
parent
3d135ebba4
commit
0869bca85a
2 changed files with 21 additions and 1 deletions
14
src/items.rs
14
src/items.rs
|
@ -1634,6 +1634,7 @@ fn rewrite_fn_base(context: &RewriteContext,
|
||||||
_ => false,
|
_ => false,
|
||||||
} && !fd.inputs.is_empty();
|
} && !fd.inputs.is_empty();
|
||||||
|
|
||||||
|
let mut args_last_line_contains_comment = false;
|
||||||
if put_args_in_block {
|
if put_args_in_block {
|
||||||
arg_indent = indent.block_indent(context.config);
|
arg_indent = indent.block_indent(context.config);
|
||||||
result.push('\n');
|
result.push('\n');
|
||||||
|
@ -1647,6 +1648,16 @@ fn rewrite_fn_base(context: &RewriteContext,
|
||||||
if context.config.spaces_within_parens() && fd.inputs.len() > 0 {
|
if context.config.spaces_within_parens() && fd.inputs.len() > 0 {
|
||||||
result.push(' ')
|
result.push(' ')
|
||||||
}
|
}
|
||||||
|
// If the last line of args contains comment, we cannot put the closing paren
|
||||||
|
// on the same line.
|
||||||
|
if arg_str
|
||||||
|
.lines()
|
||||||
|
.last()
|
||||||
|
.map_or(false, |last_line| last_line.contains("//")) {
|
||||||
|
args_last_line_contains_comment = true;
|
||||||
|
result.push('\n');
|
||||||
|
result.push_str(&arg_indent.to_string(context.config));
|
||||||
|
}
|
||||||
result.push(')');
|
result.push(')');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1670,7 +1681,8 @@ fn rewrite_fn_base(context: &RewriteContext,
|
||||||
|
|
||||||
let overlong_sig = sig_length > context.config.max_width();
|
let overlong_sig = sig_length > context.config.max_width();
|
||||||
|
|
||||||
result.contains('\n') || multi_line_ret_str || overlong_sig
|
(!args_last_line_contains_comment) &&
|
||||||
|
(result.contains('\n') || multi_line_ret_str || overlong_sig)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let ret_indent = if ret_should_indent {
|
let ret_indent = if ret_should_indent {
|
||||||
|
|
8
tests/target/issue-1587.rs
Normal file
8
tests/target/issue-1587.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
pub trait X {
|
||||||
|
fn a(&self) -> &'static str;
|
||||||
|
fn bcd(&self,
|
||||||
|
c: &str, // comment on this arg
|
||||||
|
d: u16, // comment on this arg
|
||||||
|
e: &Vec<String> // comment on this arg
|
||||||
|
) -> Box<Q>;
|
||||||
|
}
|
Loading…
Reference in a new issue