rust/tests/rustdoc/notable-trait/notable-trait-generics.rs
Michael Howell ee6b228b6a rustdoc: handle generics better when matching notable traits
This commit makes the `clean::Type::is_same` non-commutative, so
that a generic `impl` matches a concrete return, but a generic return
does not match a concrete `impl`. It makes slice and vector Write
for `u8` not match on every generic return value.
2023-03-09 14:18:12 -07:00

36 lines
975 B
Rust

#![feature(doc_notable_trait)]
// Notable traits SHOULD be shown when the `impl` has a generic type and the
// return type has a concrete type.
pub mod generic_return {
pub struct Wrapper<T>(T);
#[doc(notable_trait)]
pub trait NotableTrait {}
impl NotableTrait for Wrapper<u8> {}
// @has notable_trait_generics/generic_return/fn.returning.html
// @!has - '//a[@class="tooltip"]/@data-notable-ty' 'Wrapper<T>'
pub fn returning<T>() -> Wrapper<T> {
loop {}
}
}
// Notable traits SHOULD NOT be shown when the `impl` has a concrete type and
// the return type has a generic type.
pub mod generic_impl {
pub struct Wrapper<T>(T);
#[doc(notable_trait)]
pub trait NotableTrait {}
impl<T> NotableTrait for Wrapper<T> {}
// @has notable_trait_generics/generic_impl/fn.returning.html
// @has - '//a[@class="tooltip"]/@data-notable-ty' 'Wrapper<u8>'
pub fn returning() -> Wrapper<u8> {
loop {}
}
}