ee6b228b6a
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.
36 lines
975 B
Rust
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 {}
|
|
}
|
|
}
|