diff options
| author | Marcus Klaas <mail@marcusklaas.nl> | 2015-10-24 12:19:58 +0200 |
|---|---|---|
| committer | Marcus Klaas <mail@marcusklaas.nl> | 2015-10-24 13:13:15 +0200 |
| commit | d122ad5adc2164e34e59a7e9e7e8da2dfba7ffb5 (patch) | |
| tree | 47c808713a466de490677005fa422f27a0260164 /src/expr.rs | |
| parent | 58ff0d8730806332e05b34189d91c8504f71eccc (diff) | |
Address some issues with multiline patterns in let statements
Diffstat (limited to 'src/expr.rs')
| -rw-r--r-- | src/expr.rs | 16 |
1 files changed, 12 insertions, 4 deletions
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<S: Into<String>>(context: &RewriteContext, offset: Indent) -> Option<String> { 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) => { |
