mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 16:54:01 +00:00
rustdoc: Remove generated blanket impls from trait pages
This commit is contained in:
parent
df6ba0c4ac
commit
d3e56854e1
@ -1257,9 +1257,11 @@ impl DocFolder for Cache {
|
||||
// Collect all the implementors of traits.
|
||||
if let clean::ImplItem(ref i) = item.inner {
|
||||
if let Some(did) = i.trait_.def_id() {
|
||||
self.implementors.entry(did).or_default().push(Impl {
|
||||
impl_item: item.clone(),
|
||||
});
|
||||
if i.blanket_impl.is_none() {
|
||||
self.implementors.entry(did).or_default().push(Impl {
|
||||
impl_item: item.clone(),
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2931,7 +2933,6 @@ fn item_trait(
|
||||
|
||||
|
||||
let (synthetic, concrete): (Vec<&&Impl>, Vec<&&Impl>) = local.iter()
|
||||
.filter(|i| i.inner_impl().blanket_impl.is_none())
|
||||
.partition(|i| i.inner_impl().synthetic);
|
||||
|
||||
if !foreign.is_empty() {
|
||||
@ -2941,17 +2942,14 @@ fn item_trait(
|
||||
</h2>
|
||||
")?;
|
||||
|
||||
let mut foreign_cache = FxHashSet();
|
||||
for implementor in foreign {
|
||||
if foreign_cache.insert(implementor.inner_impl().to_string()) {
|
||||
let assoc_link = AssocItemLink::GotoSource(
|
||||
implementor.impl_item.def_id,
|
||||
&implementor.inner_impl().provided_trait_methods
|
||||
);
|
||||
render_impl(w, cx, &implementor, assoc_link,
|
||||
RenderMode::Normal, implementor.impl_item.stable_since(), false,
|
||||
None)?;
|
||||
}
|
||||
let assoc_link = AssocItemLink::GotoSource(
|
||||
implementor.impl_item.def_id,
|
||||
&implementor.inner_impl().provided_trait_methods
|
||||
);
|
||||
render_impl(w, cx, &implementor, assoc_link,
|
||||
RenderMode::Normal, implementor.impl_item.stable_since(), false,
|
||||
None)?;
|
||||
}
|
||||
}
|
||||
|
||||
|
11
src/test/rustdoc/auxiliary/issue-53689.rs
Normal file
11
src/test/rustdoc/auxiliary/issue-53689.rs
Normal file
@ -0,0 +1,11 @@
|
||||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
pub struct MyStruct;
|
26
src/test/rustdoc/issue-53689.rs
Normal file
26
src/test/rustdoc/issue-53689.rs
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// aux-build:issue-53689.rs
|
||||
|
||||
#![crate_name = "foo"]
|
||||
|
||||
extern crate issue_53689;
|
||||
|
||||
// @has foo/trait.MyTrait.html
|
||||
// @!has - 'MyStruct'
|
||||
// @count - '//*[code="impl<T> MyTrait for T"]' 1
|
||||
pub trait MyTrait {}
|
||||
|
||||
impl<T> MyTrait for T {}
|
||||
|
||||
mod a {
|
||||
pub use issue_53689::MyStruct;
|
||||
}
|
Loading…
Reference in New Issue
Block a user