diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index a95cfc1136725..9f9a3acd8523b 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -1453,12 +1453,13 @@ fn render_impl( } else { (true, " hidden") }; + let in_trait_class = if trait_.is_some() { " trait-impl" } else { "" }; match *item.kind { clean::MethodItem(..) | clean::TyMethodItem(_) => { // Only render when the method is not static or we allow static methods if render_method_item { let id = cx.derive_id(format!("{}.{}", item_type, name)); - write!(w, "
");
render_assoc_item(w, item, link.anchor(&id), ItemType::Impl, cx);
w.write_str("
");
@@ -1469,13 +1470,14 @@ fn render_impl(
outer_version,
outer_const_version,
);
+ write!(w, "", id);
write_srclink(cx, item, w);
w.write_str("", id, item_type, extra_class);
+ write!(w, "", id, item_type, extra_class, in_trait_class);
assoc_type(
w,
item,
@@ -1486,11 +1488,13 @@ fn render_impl(
cx.cache(),
tcx,
);
- w.write_str("
");
+ w.write_str("
");
+ write!(w, "", id);
+ w.write_str("", id, item_type, extra_class);
+ write!(w, "", id, item_type, extra_class, in_trait_class);
assoc_const(w, item, ty, default.as_ref(), link.anchor(&id), "", cx);
w.write_str("
");
render_stability_since_raw(
@@ -1500,12 +1504,13 @@ fn render_impl(
outer_version,
outer_const_version,
);
+ write!(w, "", id);
write_srclink(cx, item, w);
w.write_str("
");
}
clean::AssocTypeItem(ref bounds, ref default) => {
let id = cx.derive_id(format!("{}.{}", item_type, name));
- write!(w, "", id, item_type, extra_class);
+ write!(w, "", id, item_type, extra_class, in_trait_class);
assoc_type(
w,
item,
@@ -1516,7 +1521,9 @@ fn render_impl(
cx.cache(),
tcx,
);
- w.write_str("
");
+ w.write_str("
");
+ write!(w, "", id);
+ w.write_str("
");
}
clean::StrippedItem(..) => return,
_ => panic!("can't make docs for trait item with name {:?}", item.name),
diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css
index 585b7459bd717..2f9f8fb733508 100644
--- a/src/librustdoc/html/static/rustdoc.css
+++ b/src/librustdoc/html/static/rustdoc.css
@@ -133,7 +133,7 @@ h3.impl, h3.method, h4.method, h3.type, h4.type, h4.associatedconstant {
margin-bottom: 10px;
position: relative;
}
-h3.impl, h3.method, h3.type {
+h3.impl, h3.method, h4.method.trait-impl, h3.type, h4.type.trait-impl, h4.associatedconstant.trait-impl {
padding-left: 15px;
}
@@ -655,7 +655,8 @@ a {
display: initial;
}
-.in-band:hover > .anchor, .impl:hover > .anchor {
+.in-band:hover > .anchor, .impl:hover > .anchor, .method.trait-impl:hover > .anchor,
+.type.trait-impl:hover > .anchor, .associatedconstant.trait-impl:hover > .anchor {
display: inline-block;
position: absolute;
}