From 4b4dd170d809c24fb308ea1bf81b91541a5b8b01 Mon Sep 17 00:00:00 2001 From: Marcus Klaas Date: Sun, 22 Nov 2015 22:55:57 +0100 Subject: [PATCH] Correct doc comment indentation for struct fields Fix https://github.com/rust-lang-nursery/rustfmt/issues/572. --- src/items.rs | 7 +++---- src/lists.rs | 8 +------- tests/source/structs.rs | 4 ++++ tests/target/imports.rs | 3 ++- tests/target/structs.rs | 4 ++++ 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/items.rs b/src/items.rs index 19aec73f116..d69e1866654 100644 --- a/src/items.rs +++ b/src/items.rs @@ -1195,15 +1195,14 @@ impl Rewrite for ast::StructField { ast::StructFieldKind::NamedField(_, vis) | ast::StructFieldKind::UnnamedField(vis) => format_visibility(vis), }; - let indent = context.block_indent.block_indent(context.config); let mut attr_str = try_opt!(self.node .attrs .rewrite(context, - context.config.max_width - indent.width(), - indent)); + context.config.max_width - offset.width(), + offset)); if !attr_str.is_empty() { attr_str.push('\n'); - attr_str.push_str(&indent.to_string(context.config)); + attr_str.push_str(&offset.to_string(context.config)); } let result = match name { diff --git a/src/lists.rs b/src/lists.rs index ecde4f19fe4..5bd2845c0e5 100644 --- a/src/lists.rs +++ b/src/lists.rs @@ -14,7 +14,6 @@ use std::iter::Peekable; use syntax::codemap::{self, CodeMap, BytePos}; use Indent; -use utils::wrap_str; use comment::{FindUncommented, rewrite_comment, find_comment_end}; use config::Config; @@ -280,12 +279,7 @@ pub fn write_list<'b, I, T>(items: I, formatting: &ListFormatting<'b>) -> Option } } - // Make sure that string actually fits. - let item_str = try_opt!(wrap_str(&inner_item[..], - formatting.config.max_width, - formatting.width, - formatting.indent)); - result.push_str(&item_str); + result.push_str(&inner_item[..]); // Post-comments if tactic != DefinitiveListTactic::Vertical && item.post_comment.is_some() { diff --git a/tests/source/structs.rs b/tests/source/structs.rs index 9a559e029db..6d7f6213eca 100644 --- a/tests/source/structs.rs +++ b/tests/source/structs.rs @@ -141,3 +141,7 @@ mod m { a: T, } } + +struct Foo(TTTTTTTTTTTTTTTTTTT, + /// Qux + UUUUUUUUUUUUUUUUUUU); diff --git a/tests/target/imports.rs b/tests/target/imports.rs index 948b6da7c2b..296230ef8ba 100644 --- a/tests/target/imports.rs +++ b/tests/target/imports.rs @@ -2,7 +2,8 @@ // Long import. use syntax::ast::{ItemForeignMod, ItemImpl, ItemMac, ItemMod, ItemStatic, ItemDefaultImpl}; -use exceedingly::looooooooooooooooooooooooooooooooooooooooooooooooooooooooooong::import::path::{ItemA, ItemB}; +use exceedingly::looooooooooooooooooooooooooooooooooooooooooooooooooooooooooong::import::path::{ItemA, + ItemB}; use exceedingly::loooooooooooooooooooooooooooooooooooooooooooooooooooooooong::import::path::{ItemA, ItemB}; diff --git a/tests/target/structs.rs b/tests/target/structs.rs index 50090b7a5f4..9e17dec1411 100644 --- a/tests/target/structs.rs +++ b/tests/target/structs.rs @@ -149,3 +149,7 @@ mod m { a: T, } } + +struct Foo(TTTTTTTTTTTTTTTTTTT, + /// Qux + UUUUUUUUUUUUUUUUUUU);