diff --git a/src/items.rs b/src/items.rs index 82056c59dac..8adfe080a2c 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 8475b82d693..21b06ebaff5 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, diff --git a/tests/source/enum.rs b/tests/source/enum.rs index 53630699f1e..17c26b26d15 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 2440d042d24..fdfb5ff94f7 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), +}