diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index 8fb3b570f8a4..8d672ffd7bb2 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -2198,8 +2198,7 @@ fn document(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item) -> fmt::Re
info!("Documenting {}", name);
}
document_stability(w, cx, item)?;
- let prefix = render_assoc_const_value(item);
- document_full(w, item, cx, &prefix)?;
+ document_full(w, item, cx, "")?;
Ok(())
}
@@ -2231,20 +2230,6 @@ fn document_short(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item, link
Ok(())
}
-fn render_assoc_const_value(item: &clean::Item) -> String {
- match item.inner {
- clean::AssociatedConstItem(ref ty, Some(ref default)) => {
- highlight::render_with_highlighting(
- &format!("{}: {:#} = {}", item.name.as_ref().unwrap(), ty, default),
- None,
- None,
- None,
- )
- }
- _ => String::new(),
- }
-}
-
fn document_full(w: &mut fmt::Formatter, item: &clean::Item,
cx: &Context, prefix: &str) -> fmt::Result {
if let Some(s) = cx.shared.maybe_collapsed_doc_value(item) {
@@ -3860,7 +3845,13 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi
write!(w, "
", id, item_type)?;
write!(w, "", ns_id)?;
assoc_const(w, item, ty, default.as_ref(), link.anchor(&id))?;
- write!(w, "
\n")?;
+ let src = if let Some(l) = (Item { cx, item }).src_href() {
+ format!("[src]",
+ l, "goto source code")
+ } else {
+ String::new()
+ };
+ write!(w, "{}\n", src)?;
}
clean::AssociatedTypeItem(ref bounds, ref default) => {
let id = cx.derive_id(format!("{}.{}", item_type, name));
@@ -3875,8 +3866,6 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi
}
if render_method_item || render_mode == RenderMode::Normal {
- let prefix = render_assoc_const_value(item);
-
if !is_default_item {
if let Some(t) = trait_ {
// The trait item may have been stripped so we might not
@@ -3886,23 +3875,23 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi
// because impls can't have a stability.
document_stability(w, cx, it)?;
if item.doc_value().is_some() {
- document_full(w, item, cx, &prefix)?;
+ document_full(w, item, cx, "")?;
} else if show_def_docs {
// In case the item isn't documented,
// provide short documentation from the trait.
- document_short(w, cx, it, link, &prefix)?;
+ document_short(w, cx, it, link, "")?;
}
}
} else {
document_stability(w, cx, item)?;
if show_def_docs {
- document_full(w, item, cx, &prefix)?;
+ document_full(w, item, cx, "")?;
}
}
} else {
document_stability(w, cx, item)?;
if show_def_docs {
- document_short(w, cx, item, link, &prefix)?;
+ document_short(w, cx, item, link, "")?;
}
}
}
diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css
index 57a111daa897..5ed91e63cdce 100644
--- a/src/librustdoc/html/static/rustdoc.css
+++ b/src/librustdoc/html/static/rustdoc.css
@@ -559,6 +559,14 @@ a {
text-decoration: underline;
}
+.invisible > .srclink {
+ position: absolute;
+ top: 0;
+ right: 0;
+ font-size: 17px;
+ font-weight: normal;
+}
+
.block a.current.crate { font-weight: 500; }
.search-container {