diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 24e18bb3a51f..0c60952f4500 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -939,7 +939,13 @@ crate enum DocFragmentKind { // `need_backline` field). fn add_doc_fragment(out: &mut String, frag: &DocFragment) { let s = frag.doc.as_str(); - let mut iter = s.lines().peekable(); + let mut iter = s.lines(); + if s == "" { + if frag.need_backline { + out.push('\n'); + } + return; + } while let Some(line) = iter.next() { if line.chars().any(|c| !c.is_whitespace()) { assert!(line.len() >= frag.indent); @@ -947,13 +953,11 @@ fn add_doc_fragment(out: &mut String, frag: &DocFragment) { } else { out.push_str(line); } - if iter.peek().is_some() { - out.push('\n'); - } - } - if frag.need_backline { out.push('\n'); } + if !frag.need_backline { + out.pop(); + } } /// Collapse a collection of [`DocFragment`]s into one string,