Skip to content

Commit 2253216

Browse files
committed
Auto merge of #49335 - GuillaumeGomez:remove-unneeded-trait-implementations-title, r=QuietMisdreavus
Remove unneeded trait implementations titles r? @QuietMisdreavus
2 parents a143462 + d91a821 commit 2253216

File tree

2 files changed

+34
-11
lines changed

2 files changed

+34
-11
lines changed

src/librustdoc/html/render.rs

+19-11
Original file line numberDiff line numberDiff line change
@@ -2293,9 +2293,9 @@ fn render_implementor(cx: &Context, implementor: &Impl, w: &mut fmt::Formatter,
22932293
}
22942294

22952295
fn render_impls(cx: &Context, w: &mut fmt::Formatter,
2296-
traits: Vec<&&Impl>,
2296+
traits: &[&&Impl],
22972297
containing_item: &clean::Item) -> Result<(), fmt::Error> {
2298-
for i in &traits {
2298+
for i in traits {
22992299
let did = i.trait_did().unwrap();
23002300
let assoc_link = AssocItemLink::GotoSource(did, &i.inner_impl().provided_trait_methods);
23012301
render_impl(w, cx, i, assoc_link,
@@ -3204,14 +3204,22 @@ fn render_assoc_items(w: &mut fmt::Formatter,
32043204
.iter()
32053205
.partition::<Vec<_>, _>(|t| t.inner_impl().synthetic);
32063206

3207-
write!(w, "
3208-
<h2 id='implementations' class='small-section-header'>
3209-
Trait Implementations<a href='#implementations' class='anchor'></a>
3210-
</h2>
3211-
<div id='implementations-list'>
3212-
")?;
3213-
render_impls(cx, w, concrete, containing_item)?;
3214-
write!(w, "</div>")?;
3207+
struct RendererStruct<'a, 'b, 'c>(&'a Context, Vec<&'b &'b Impl>, &'c clean::Item);
3208+
3209+
impl<'a, 'b, 'c> fmt::Display for RendererStruct<'a, 'b, 'c> {
3210+
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3211+
render_impls(self.0, fmt, &self.1, self.2)
3212+
}
3213+
}
3214+
3215+
let impls = format!("{}", RendererStruct(cx, concrete, containing_item));
3216+
if !impls.is_empty() {
3217+
write!(w, "
3218+
<h2 id='implementations' class='small-section-header'>
3219+
Trait Implementations<a href='#implementations' class='anchor'></a>
3220+
</h2>
3221+
<div id='implementations-list'>{}</div>", impls)?;
3222+
}
32153223

32163224
if !synthetic.is_empty() {
32173225
write!(w, "
@@ -3220,7 +3228,7 @@ fn render_assoc_items(w: &mut fmt::Formatter,
32203228
</h2>
32213229
<div id='synthetic-implementations-list'>
32223230
")?;
3223-
render_impls(cx, w, synthetic, containing_item)?;
3231+
render_impls(cx, w, &synthetic, containing_item)?;
32243232
write!(w, "</div>")?;
32253233
}
32263234
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_name = "foo"]
12+
13+
pub struct Bar;
14+
15+
// @!has foo/struct.Bar.html '//*[@id="implementations"]'

0 commit comments

Comments
 (0)