};
if let Some(ref expr) = *opt_expr {
- rewrite_unary_prefix(context,
- &format!("break{} ", id_str),
- &**expr,
- shape,
- expr.span)
+ rewrite_unary_prefix(context, &format!("break{} ", id_str), &**expr, shape)
} else {
wrap_str(format!("break{}", id_str), context.config.max_width, shape)
}
}
ast::ExprKind::Ret(None) => wrap_str("return".to_owned(), context.config.max_width, shape),
ast::ExprKind::Ret(Some(ref expr)) => {
- rewrite_unary_prefix(context, "return ", &**expr, shape, expr.span)
- }
- ast::ExprKind::Box(ref expr) => {
- rewrite_unary_prefix(context, "box ", &**expr, shape, expr.span)
+ rewrite_unary_prefix(context, "return ", &**expr, shape)
}
+ ast::ExprKind::Box(ref expr) => rewrite_unary_prefix(context, "box ", &**expr, shape),
ast::ExprKind::AddrOf(mutability, ref expr) => {
rewrite_expr_addrof(context, mutability, expr, shape)
}
} else {
delim.into()
};
- rewrite_unary_prefix(context, &sp_delim, &**rhs, shape, expr.span)
+ rewrite_unary_prefix(context, &sp_delim, &**rhs, shape)
}
(Some(ref lhs), None) => {
let sp_delim = if context.config.spaces_around_ranges {
pub fn rewrite_unary_prefix<R: Rewrite>(context: &RewriteContext,
prefix: &str,
rewrite: &R,
- mut shape: Shape,
- span: Span)
+ shape: Shape)
-> Option<String> {
- // Heuristic: if unary is `&` and `rewrite` contains `{`,
- // it is likely that block indent is preferred to visual indent.
- if prefix == "&" {
- let snippet = String::from(context.snippet(span).trim_left_matches('&'));
- let first_line = try_opt!(snippet.lines().nth(0));
- if first_line.contains("{") {
- shape = try_opt!(shape.sub_width(prefix.len())).block_indent(0);
- } else {
- shape = try_opt!(shape.shrink_left(prefix.len())).visual_indent(0);
- }
- } else {
- shape = try_opt!(shape.shrink_left(prefix.len())).visual_indent(0);
- }
rewrite
- .rewrite(context, shape)
+ .rewrite(context, try_opt!(shape.offset_left(prefix.len())))
.map(|r| format!("{}{}", prefix, r))
}
ast::UnOp::Not => "!",
ast::UnOp::Neg => "-",
};
- rewrite_unary_prefix(context, operator_str, expr, shape, expr.span)
+ rewrite_unary_prefix(context, operator_str, expr, shape)
}
fn rewrite_assignment(context: &RewriteContext,
ast::Mutability::Immutable => "&",
ast::Mutability::Mutable => "&mut ",
};
- rewrite_unary_prefix(context, operator_str, expr, shape, expr.span)
+ rewrite_unary_prefix(context, operator_str, expr, shape)
}
impl Rewrite for Pat {
fn rewrite(&self, context: &RewriteContext, shape: Shape) -> Option<String> {
match self.node {
- PatKind::Box(ref pat) => {
- rewrite_unary_prefix(context, "box ", &**pat, shape, self.span)
- }
+ PatKind::Box(ref pat) => rewrite_unary_prefix(context, "box ", &**pat, shape),
PatKind::Ident(binding_mode, ident, ref sub_pat) => {
let (prefix, mutability) = match binding_mode {
BindingMode::ByRef(mutability) => ("ref ", mutability),
}
PatKind::Ref(ref pat, mutability) => {
let prefix = format!("&{}", format_mutability(mutability));
- rewrite_unary_prefix(context, &prefix, &**pat, shape, self.span)
+ rewrite_unary_prefix(context, &prefix, &**pat, shape)
}
PatKind::Tuple(ref items, dotdot_pos) => {
rewrite_tuple_pat(items, dotdot_pos, None, self.span, context, shape)