}
ast::ExprKind::Call(ref callee, ref args) => {
let inner_span = mk_sp(callee.span.hi, expr.span.hi);
- rewrite_call(context, &**callee, args, inner_span, shape, false)
+ rewrite_call(context, &**callee, args, inner_span, shape)
}
ast::ExprKind::Paren(ref subexpr) => rewrite_paren(context, subexpr, shape),
ast::ExprKind::Binary(ref op, ref lhs, ref rhs) => {
}
// Figure out if the block is necessary.
- let needs_block = block.rules != ast::BlockCheckMode::Default || block.stmts.len() > 1 ||
+ let needs_block = block.rules != ast::BlockCheckMode::Default ||
+ block.stmts.len() > 1 || context.inside_macro ||
block_contains_comment(block, context.codemap) ||
prefix.contains('\n');
callee: &R,
args: &[ptr::P<ast::Expr>],
span: Span,
- shape: Shape,
- force_no_trailing_comma: bool)
+ shape: Shape)
-> Option<String>
where R: Rewrite
{
- let closure = |callee_max_width| {
- rewrite_call_inner(context,
- callee,
- callee_max_width,
- args,
- span,
- shape,
- force_no_trailing_comma)
- };
+ let closure =
+ |callee_max_width| rewrite_call_inner(context, callee, callee_max_width, args, span, shape);
// 2 is for parens
let max_width = try_opt!(shape.width.checked_sub(2));
max_callee_width: usize,
args: &[ptr::P<ast::Expr>],
span: Span,
- shape: Shape,
- force_no_trailing_comma: bool)
+ shape: Shape)
-> Result<String, Ordering>
where R: Rewrite
{
let span_lo = context.codemap.span_after(span, "(");
let span = mk_sp(span_lo, span.hi);
- let list_str = rewrite_call_args(context,
- args,
- span,
- nested_shape,
- one_line_width,
- force_no_trailing_comma)
- .ok_or(Ordering::Less)?;
+ let list_str = rewrite_call_args(context, args, span, nested_shape, one_line_width)
+ .ok_or(Ordering::Less)?;
let result = if context.config.fn_call_style == IndentStyle::Visual ||
(!list_str.contains('\n') && list_str.chars().last().unwrap_or(' ') != ',') {
args: &[ptr::P<ast::Expr>],
span: Span,
shape: Shape,
- one_line_width: usize,
- force_no_trailing_comma: bool)
+ one_line_width: usize)
-> Option<String> {
let arg_count = args.len();
let mut fmt = ListFormatting {
tactic: tactic,
separator: ",",
- trailing_separator: if force_no_trailing_comma ||
+ trailing_separator: if context.inside_macro ||
context.config.fn_call_style == IndentStyle::Visual ||
arg_count <= 1 {
SeparatorTactic::Never
// try to put it on the next line. Try this only when we are in block mode
// and not rewriting macro.
Some(ref s) if context.config.fn_call_style == IndentStyle::Block &&
- !force_no_trailing_comma &&
+ !context.inside_macro &&
(!s.contains('\n') &&
(s.len() > one_line_width || s.len() > context.config.fn_call_width)) => {
fmt.trailing_separator = SeparatorTactic::Vertical;
shape: Shape,
position: MacroPosition)
-> Option<String> {
+ let mut context = &mut context.clone();
+ context.inside_macro = true;
if context.config.use_try_shorthand {
if let Some(expr) = convert_try_mac(mac, context) {
return expr.rewrite(context, shape);
MacroStyle::Parens => {
// Format macro invocation as function call, forcing no trailing
// comma because not all macros support them.
- rewrite_call(context, ¯o_name, &expr_vec, mac.span, shape, true)
- .map(|rw| match position {
- MacroPosition::Item => format!("{};", rw),
- _ => rw,
- })
+ rewrite_call(context, ¯o_name, &expr_vec, mac.span, shape).map(|rw| {
+ match position {
+ MacroPosition::Item => format!("{};", rw),
+ _ => rw,
+ }
+ })
}
MacroStyle::Brackets => {
// Format macro invocation as array literal.