diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index de434e9d2e36c..b6cfd26e2555e 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -3136,7 +3136,6 @@ fn item_trait(
// FIXME: we should be using a derived_id for the Anchors here
write!(w, "{{\n")?;
for t in &types {
- write!(w, " ")?;
render_assoc_item(w, t, AssocItemLink::Anchor(None), ItemType::Trait)?;
write!(w, ";\n")?;
}
@@ -3144,7 +3143,6 @@ fn item_trait(
w.write_str("\n")?;
}
for t in &consts {
- write!(w, " ")?;
render_assoc_item(w, t, AssocItemLink::Anchor(None), ItemType::Trait)?;
write!(w, ";\n")?;
}
@@ -3152,7 +3150,6 @@ fn item_trait(
w.write_str("\n")?;
}
for (pos, m) in required.iter().enumerate() {
- write!(w, " ")?;
render_assoc_item(w, m, AssocItemLink::Anchor(None), ItemType::Trait)?;
write!(w, ";\n")?;
@@ -3164,7 +3161,6 @@ fn item_trait(
w.write_str("\n")?;
}
for (pos, m) in provided.iter().enumerate() {
- write!(w, " ")?;
render_assoc_item(w, m, AssocItemLink::Anchor(None), ItemType::Trait)?;
match m.inner {
clean::MethodItem(ref inner) if !inner.generics.where_predicates.is_empty() => {
@@ -3473,8 +3469,9 @@ fn render_assoc_item(w: &mut fmt::Formatter<'_>,
(0, true)
};
render_attributes(w, meth)?;
- write!(w, "{}{}{}{}{}{}fn {name}\
+ write!(w, "{}{}{}{}{}{}{}fn {name}\
{generics}{decl}{where_clause}",
+ if parent == ItemType::Trait { " " } else { "" },
VisSpace(&meth.visibility),
ConstnessSpace(header.constness),
UnsafetySpace(header.unsafety),
@@ -3775,7 +3772,7 @@ const ATTRIBUTE_WHITELIST: &'static [&'static str] = &[
"non_exhaustive"
];
-fn render_attributes(w: &mut fmt::Formatter<'_>, it: &clean::Item) -> fmt::Result {
+fn render_attributes(w: &mut dyn fmt::Write, it: &clean::Item) -> fmt::Result {
let mut attrs = String::new();
for attr in &it.attrs.other_attrs {
diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css
index 5314255ac322b..2228e58b0d232 100644
--- a/src/librustdoc/html/static/rustdoc.css
+++ b/src/librustdoc/html/static/rustdoc.css
@@ -1577,3 +1577,17 @@ div.name.expand::before {
left: -15px;
top: 2px;
}
+
+/* This part is to fix the "Expand attributes" part in the type declaration. */
+.type-decl > pre > :first-child {
+ margin-left: 0 !important;
+}
+.type-decl > pre > :nth-child(2) {
+ margin-left: 1.8em !important;
+}
+.type-decl > pre > .toggle-attributes {
+ margin-left: 2.2em;
+}
+.type-decl > pre > .docblock.attributes {
+ margin-left: 4em;
+}