diff --git a/src/expr.rs b/src/expr.rs index 55f8fa8ba92..ce1eb5dc053 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -303,16 +303,16 @@ pub fn rewrite_array<'a, I>(expr_iter: I, -> Option<String> where I: Iterator<Item = &'a ast::Expr> { - // 2 for brackets; + // 1 = [ let offset = offset + 1; let inner_context = &RewriteContext { block_indent: offset, ..*context }; + // 2 for brackets let max_item_width = try_opt!(width.checked_sub(2)); let items = itemize_list(context.codemap, expr_iter, "]", |item| item.span.lo, |item| item.span.hi, - // 1 = [ |item| item.rewrite(inner_context, max_item_width, offset), span.lo, span.hi) @@ -1753,20 +1753,15 @@ pub fn rewrite_tuple<'a, I>(context: &RewriteContext, } let list_lo = context.codemap.span_after(span, "("); + let budget = try_opt!(width.checked_sub(2)); let items = itemize_list(context.codemap, items, ")", |item| item.span().lo, |item| item.span().hi, - |item| { - let inner_width = try_opt!(context.config - .max_width - .checked_sub(indent.width() + 1)); - item.rewrite(&aligned, inner_width, indent) - }, + |item| item.rewrite(&aligned, budget, indent), list_lo, span.hi - BytePos(1)); - let budget = try_opt!(width.checked_sub(2)); let list_str = try_opt!(format_item_list(items, budget, indent, context.config)); Some(format!("({})", list_str)) diff --git a/tests/source/tuple.rs b/tests/source/tuple.rs index b28e83d2f08..d47777734bb 100644 --- a/tests/source/tuple.rs +++ b/tests/source/tuple.rs @@ -32,3 +32,13 @@ fn issue550() { self.visitor.visit_volume(self.level.sector_id(sector), (floor_y, if is_sky_flat(ceil_tex) {from_wad_height(self.height_range.1)} else {ceil_y})); } + +fn issue775() { + if indent { + let a = mk_object(&[("a".to_string(), Boolean(true)), + ("b".to_string(), + Array(vec![mk_object(&[("c".to_string(), + String("\x0c\r".to_string()))]), + mk_object(&[("d".to_string(), String("".to_string()))])]))]); + } +} diff --git a/tests/target/tuple.rs b/tests/target/tuple.rs index 2d1d0b808d7..2d3b52da72a 100644 --- a/tests/target/tuple.rs +++ b/tests/target/tuple.rs @@ -37,3 +37,14 @@ fn issue550() { ceil_y })); } + +fn issue775() { + if indent { + let a = mk_object(&[("a".to_string(), Boolean(true)), + ("b".to_string(), + Array(vec![mk_object(&[("c".to_string(), + String("\x0c\r".to_string()))]), + mk_object(&[("d".to_string(), + String("".to_string()))])]))]); + } +}