diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index d7951961223e4..bea0e75832c33 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -102,14 +102,6 @@ impl Buffer {
self.into_inner()
}
- crate fn from_display(&mut self, t: T) {
- if self.for_html {
- write!(self, "{}", t);
- } else {
- write!(self, "{:#}", t);
- }
- }
-
crate fn is_for_html(&self) -> bool {
self.for_html
}
@@ -900,16 +892,7 @@ impl clean::Type {
}
impl clean::Impl {
- crate fn print<'a>(&'a self, cache: &'a Cache) -> impl fmt::Display + 'a {
- self.print_inner(true, false, cache)
- }
-
- fn print_inner<'a>(
- &'a self,
- link_trait: bool,
- use_absolute: bool,
- cache: &'a Cache,
- ) -> impl fmt::Display + 'a {
+ crate fn print<'a>(&'a self, cache: &'a Cache, use_absolute: bool) -> impl fmt::Display + 'a {
display_fn(move |f| {
if f.alternate() {
write!(f, "impl{:#} ", self.generics.print(cache))?;
@@ -921,21 +904,7 @@ impl clean::Impl {
if self.negative_polarity {
write!(f, "!")?;
}
-
- if link_trait {
- fmt::Display::fmt(&ty.print(cache), f)?;
- } else {
- match ty {
- clean::ResolvedPath {
- param_names: None, path, is_generic: false, ..
- } => {
- let last = path.segments.last().unwrap();
- fmt::Display::fmt(&last.name, f)?;
- fmt::Display::fmt(&last.args.print(cache), f)?;
- }
- _ => unreachable!(),
- }
- }
+ fmt::Display::fmt(&ty.print(cache), f)?;
write!(f, " for ")?;
}
@@ -952,16 +921,6 @@ impl clean::Impl {
}
}
-// The difference from above is that trait is not hyperlinked.
-crate fn fmt_impl_for_trait_page(
- i: &clean::Impl,
- f: &mut Buffer,
- use_absolute: bool,
- cache: &Cache,
-) {
- f.from_display(i.print_inner(false, use_absolute, cache))
-}
-
impl clean::Arguments {
crate fn print<'a>(&'a self, cache: &'a Cache) -> impl fmt::Display + 'a {
display_fn(move |f| {
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 6909ab870db61..c305a412652f7 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -73,7 +73,6 @@ use crate::formats::cache::Cache;
use crate::formats::item_type::ItemType;
use crate::formats::{AssocItemRender, FormatRenderer, Impl, RenderMode};
use crate::html::escape::Escape;
-use crate::html::format::fmt_impl_for_trait_page;
use crate::html::format::Function;
use crate::html::format::{href, print_default_space, print_generic_bounds, WhereClause};
use crate::html::format::{print_abi_with_space, Buffer, PrintWithSpace};
@@ -1138,7 +1137,7 @@ themePicker.onblur = handleThemeButtonsBlur;
None
} else {
Some(Implementor {
- text: imp.inner_impl().print(cx.cache()).to_string(),
+ text: imp.inner_impl().print(cx.cache(), false).to_string(),
synthetic: imp.inner_impl().synthetic,
types: collect_paths_for_type(imp.inner_impl().for_.clone(), cx.cache()),
})
@@ -2550,8 +2549,8 @@ fn bounds(t_bounds: &[clean::GenericBound], trait_alias: bool, cache: &Cache) ->
}
fn compare_impl<'a, 'b>(lhs: &'a &&Impl, rhs: &'b &&Impl, cache: &Cache) -> Ordering {
- let lhs = format!("{}", lhs.inner_impl().print(cache));
- let rhs = format!("{}", rhs.inner_impl().print(cache));
+ let lhs = format!("{}", lhs.inner_impl().print(cache, false));
+ let rhs = format!("{}", rhs.inner_impl().print(cache, false));
// lhs and rhs are formatted as HTML, which may be unnecessary
compare_names(&lhs, &rhs)
@@ -3698,7 +3697,7 @@ fn spotlight_decl(decl: &clean::FnDecl, cache: &Cache) -> String {
write!(
&mut out,
"{}",
- impl_.print(cache)
+ impl_.print(cache, false)
);
let t_did = impl_.trait_.def_id_full(cache).unwrap();
for it in &impl_.items {
@@ -3771,7 +3770,7 @@ fn render_impl(
};
if let Some(use_absolute) = use_absolute {
write!(w, "", id, aliases);
- fmt_impl_for_trait_page(&i.inner_impl(), w, use_absolute, cx.cache());
+ write!(w, "{}", i.inner_impl().print(cx.cache(), use_absolute));
if show_def_docs {
for it in &i.inner_impl().items {
if let clean::TypedefItem(ref tydef, _) = *it.kind {
@@ -3796,7 +3795,7 @@ fn render_impl(
"{}
",
id,
aliases,
- i.inner_impl().print(cx.cache())
+ i.inner_impl().print(cx.cache(), false)
);
}
write!(w, "", id);
diff --git a/src/test/rustdoc/trait-self-link.rs b/src/test/rustdoc/trait-self-link.rs
index 51e1fe91f9672..bac28b44012cc 100644
--- a/src/test/rustdoc/trait-self-link.rs
+++ b/src/test/rustdoc/trait-self-link.rs
@@ -1,4 +1,4 @@
-// @!has trait_self_link/trait.Foo.html //a/@href ../trait_self_link/trait.Foo.html
+// @has trait_self_link/trait.Foo.html //a/@href ../trait_self_link/trait.Foo.html
pub trait Foo {}
pub struct Bar;