diff options
| author | Nick Cameron <nrc@ncameron.org> | 2017-05-16 09:55:07 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-16 09:55:07 +1200 |
| commit | 09e5051deed87b4c2eee5be6f5868e14380fe996 (patch) | |
| tree | 6f3fd0a8e7ffcf0fd796035fd3dca365444cf9d2 /src/expr.rs | |
| parent | d1682b347333996d078de9e93281814cddf98751 (diff) | |
| parent | 762db5138e3c859f3dd736a46798615c561831a1 (diff) | |
Merge pull request #1556 from topecongiro/issue-1555
Only add offset for unary op
Diffstat (limited to 'src/expr.rs')
| -rw-r--r-- | src/expr.rs | 52 |
1 files changed, 16 insertions, 36 deletions
diff --git a/src/expr.rs b/src/expr.rs index 585073c8f0c..7fb71c2e8b4 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -156,11 +156,7 @@ fn format_expr(expr: &ast::Expr, }; 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) } @@ -180,11 +176,9 @@ fn format_expr(expr: &ast::Expr, } 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) } @@ -226,7 +220,7 @@ fn format_expr(expr: &ast::Expr, } 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 { @@ -1967,14 +1961,14 @@ pub fn rewrite_tuple<'a, I>(context: &RewriteContext, // 3 = "(" + ",)" let nested_shape = try_opt!(shape.sub_width(3)).visual_indent(1); return items - .next() - .unwrap() - .rewrite(context, nested_shape) - .map(|s| if context.config.spaces_within_parens { - format!("( {}, )", s) - } else { - format!("({},)", s) - }); + .next() + .unwrap() + .rewrite(context, nested_shape) + .map(|s| if context.config.spaces_within_parens { + format!("( {}, )", s) + } else { + format!("({},)", s) + }); } let list_lo = context.codemap.span_after(span, "("); @@ -1999,24 +1993,10 @@ pub fn rewrite_tuple<'a, I>(context: &RewriteContext, 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)) } @@ -2046,7 +2026,7 @@ fn rewrite_unary_op(context: &RewriteContext, 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, @@ -2143,5 +2123,5 @@ fn rewrite_expr_addrof(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) } |
