diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs
index ccc51c243ad8b..1505fe0369d86 100644
--- a/src/librustdoc/html/markdown.rs
+++ b/src/librustdoc/html/markdown.rs
@@ -1093,6 +1093,7 @@ fn markdown_summary_with_limit(md: &str, length_limit: usize) -> (String, bool)
Tag::Emphasis => s.push_str(""),
Tag::Strong => s.push_str(""),
Tag::Paragraph => break,
+ Tag::Heading(..) => break,
_ => {}
},
Event::HardBreak | Event::SoftBreak => {
diff --git a/src/librustdoc/html/markdown/tests.rs b/src/librustdoc/html/markdown/tests.rs
index e2ce9ad23f478..ac3ea4c8c5f6f 100644
--- a/src/librustdoc/html/markdown/tests.rs
+++ b/src/librustdoc/html/markdown/tests.rs
@@ -235,6 +235,7 @@ fn test_short_markdown_summary() {
t("code `let x = i32;` ...", "code let x = i32;
…");
t("type `Type<'static>` ...", "type Type<'static>
…");
t("# top header", "top header");
+ t("# top header\n\nfollowed by a paragraph", "top header");
t("## header", "header");
t("first paragraph\n\nsecond paragraph", "first paragraph");
t("```\nfn main() {}\n```", "");
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 2331f4d20a84f..a4621fb8ed555 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -286,11 +286,7 @@ impl Serialize for TypeWithKind {
where
S: Serializer,
{
- let mut seq = serializer.serialize_seq(None)?;
- seq.serialize_element(&self.ty.name)?;
- let x: ItemType = self.kind.into();
- seq.serialize_element(&x)?;
- seq.end()
+ (&self.ty.name, ItemType::from(self.kind)).serialize(serializer)
}
}