From 271da96098e0bfb799b0284f202fa15dc372f8e0 Mon Sep 17 00:00:00 2001 From: Seiichi Uchida Date: Mon, 30 Oct 2017 21:35:23 +0900 Subject: [PATCH 1/2] Add a test for #2098 --- tests/source/enum.rs | 5 +++++ tests/target/enum.rs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/tests/source/enum.rs b/tests/source/enum.rs index 53630699f1e5..17c26b26d158 100644 --- a/tests/source/enum.rs +++ b/tests/source/enum.rs @@ -141,3 +141,8 @@ pub enum Entry<'a, K: 'a, V: 'a> { pub enum ForegroundColor { CYAN = (winapi::FOREGROUND_INTENSITY | winapi::FOREGROUND_GREEN | winapi::FOREGROUND_BLUE) as u16, } + +// #2098 +pub enum E<'a> { + V ( < std::slice::Iter<'a, Xxxxxxxxxxxxxx> as Iterator> :: Item ) , +} diff --git a/tests/target/enum.rs b/tests/target/enum.rs index 2440d042d24f..fdfb5ff94f7f 100644 --- a/tests/target/enum.rs +++ b/tests/target/enum.rs @@ -179,3 +179,8 @@ pub enum ForegroundColor { CYAN = (winapi::FOREGROUND_INTENSITY | winapi::FOREGROUND_GREEN | winapi::FOREGROUND_BLUE) as u16, } + +// #2098 +pub enum E<'a> { + V( as Iterator>::Item), +} From b0d6d03a25a01338044c5e59ca9be2ea6ab32bac Mon Sep 17 00:00:00 2001 From: Seiichi Uchida Date: Mon, 30 Oct 2017 21:35:56 +0900 Subject: [PATCH 2/2] Use correct budget --- src/items.rs | 4 ++-- src/types.rs | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/items.rs b/src/items.rs index 82056c59dac5..8adfe080a2c4 100644 --- a/src/items.rs +++ b/src/items.rs @@ -1235,13 +1235,13 @@ fn format_tuple_struct( } result.push(')'); } else { - // 3 = `();` + // 1 = "," let body = rewrite_call_inner( context, "", &fields.iter().map(|field| field).collect::>()[..], span, - Shape::legacy(context.budget(last_line_width(&result) + 3), offset), + Shape::indented(offset, context.config).sub_width(1)?, context.config.fn_call_width(), false, )?; diff --git a/src/types.rs b/src/types.rs index 8475b82d6933..21b06ebaff5a 100644 --- a/src/types.rs +++ b/src/types.rs @@ -67,9 +67,8 @@ pub fn rewrite_path( result.push_str("::"); } - let extra_offset = extra_offset(&result, shape); // 3 = ">::".len() - let shape = shape.shrink_left(extra_offset)?.sub_width(3)?; + let shape = shape.sub_width(3)?; result = rewrite_path_segments( PathContext::Type,