Rollup merge of #103432 - jsha:box-is-not-notable, r=GuillaumeGomez
rustdoc: don't mark Box<T> as Iterator, Read, etc Because Box<T> has pass-through implementations, rustdoc was giving it the "Notable Traits" treatment for Iterator, Read, Write, and Future, even when the type of T was unspecified. Pin had the same problem, but just for Future. Fixes #100320
This commit is contained in:
commit
ec7ffdfbaf
2 changed files with 47 additions and 0 deletions
38
src/test/rustdoc/doc-notable_trait_box_is_not_an_iterator.rs
Normal file
38
src/test/rustdoc/doc-notable_trait_box_is_not_an_iterator.rs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#![feature(doc_notable_trait)]
|
||||
#![feature(lang_items)]
|
||||
#![feature(no_core)]
|
||||
#![no_core]
|
||||
#[lang = "owned_box"]
|
||||
pub struct Box<T>;
|
||||
|
||||
impl<T> Box<T> {
|
||||
pub fn new(x: T) -> Box<T> {
|
||||
Box
|
||||
}
|
||||
}
|
||||
|
||||
#[doc(notable_trait)]
|
||||
pub trait FakeIterator {}
|
||||
|
||||
impl<I: FakeIterator> FakeIterator for Box<I> {}
|
||||
|
||||
#[lang = "pin"]
|
||||
pub struct Pin<T>;
|
||||
|
||||
impl<T> Pin<T> {
|
||||
pub fn new(x: T) -> Pin<T> {
|
||||
Pin
|
||||
}
|
||||
}
|
||||
|
||||
impl<I: FakeIterator> FakeIterator for Pin<I> {}
|
||||
|
||||
// @!has doc_notable_trait_box_is_not_an_iterator/fn.foo.html '//*' 'Notable'
|
||||
pub fn foo<T>(x: T) -> Box<T> {
|
||||
Box::new(x)
|
||||
}
|
||||
|
||||
// @!has doc_notable_trait_box_is_not_an_iterator/fn.bar.html '//*' 'Notable'
|
||||
pub fn bar<T>(x: T) -> Pin<T> {
|
||||
Pin::new(x)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue