From d122ad5adc2164e34e59a7e9e7e8da2dfba7ffb5 Mon Sep 17 00:00:00 2001 From: Marcus Klaas Date: Sat, 24 Oct 2015 12:19:58 +0200 Subject: Address some issues with multiline patterns in let statements --- src/expr.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/expr.rs') diff --git a/src/expr.rs b/src/expr.rs index 20a637bffca..16c46f6bef1 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -1398,7 +1398,10 @@ pub fn rewrite_tuple<'a, R>(context: &RewriteContext, |item| item.span().lo, |item| item.span().hi, |item| { - let inner_width = context.config.max_width - indent.width() - 1; + let inner_width = try_opt!(context.config + .max_width + .checked_sub(indent.width() + + 1)); item.rewrite(context, inner_width, indent) }, span.lo + BytePos(1), // Remove parens @@ -1522,10 +1525,15 @@ pub fn rewrite_assign_rhs>(context: &RewriteContext, offset: Indent) -> Option { let mut result = lhs.into(); - + let last_line_width = last_line_width(&result) - + if result.contains('\n') { + offset.width() + } else { + 0 + }; // 1 = space between operator and rhs. - let max_width = try_opt!(width.checked_sub(result.len() + 1)); - let rhs = ex.rewrite(&context, max_width, offset + result.len() + 1); + let max_width = try_opt!(width.checked_sub(last_line_width + 1)); + let rhs = ex.rewrite(&context, max_width, offset + last_line_width + 1); match rhs { Some(new_str) => { -- cgit 1.4.1-3-g733a5