Document direct implementations on type aliases.
This improves #32077, but is not a complete fix. For a type alias `type
NewType = AliasedType`, it will include any `impl NewType` and `impl
Trait for NewType` blocks in the documentation for `NewType`.
A complete fix would include the implementations from the aliased type
in the type alias' documentation, so that users have a complete
picture of methods that are available on the alias. However, to do this
properly would require a fix for #14072, as the alias may affect the
type parameters of the type alias, making the documentation difficult to
understand. (That is, for `type Result = std::result::Result<(), ()>` we
would ideally show documentation for `impl Result<(), ()>`, rather than
generic documentation for `impl<T, E> Result<T, E>`).
I think this improvement is worthwhile, as it exposes implementations
which are not currently documented by rustdoc. The documentation for the
implementations on the aliased type are still accessible by clicking
through to the docs for that type. (Although perhaps it's now less
obvious to the user that they should click-through to get there).
2017-05-16 01:16:44 -05:00
|
|
|
pub trait MyTrait {
|
|
|
|
fn method_on_mytrait() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub struct MyStruct;
|
|
|
|
|
|
|
|
impl MyStruct {
|
|
|
|
pub fn method_on_mystruct() {}
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has typedef/type.MyAlias.html
|
|
|
|
//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'impl MyAlias'
|
|
|
|
//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'impl MyTrait for MyAlias'
|
|
|
|
//@ hasraw - 'Alias docstring'
|
|
|
|
//@ has - '//*[@class="sidebar"]//*[@class="location"]' 'MyAlias'
|
|
|
|
//@ has - '//*[@class="sidebar"]//a[@href="#implementations"]' 'Methods'
|
|
|
|
//@ has - '//*[@class="sidebar"]//a[@href="#trait-implementations"]' 'Trait Implementations'
|
Document direct implementations on type aliases.
This improves #32077, but is not a complete fix. For a type alias `type
NewType = AliasedType`, it will include any `impl NewType` and `impl
Trait for NewType` blocks in the documentation for `NewType`.
A complete fix would include the implementations from the aliased type
in the type alias' documentation, so that users have a complete
picture of methods that are available on the alias. However, to do this
properly would require a fix for #14072, as the alias may affect the
type parameters of the type alias, making the documentation difficult to
understand. (That is, for `type Result = std::result::Result<(), ()>` we
would ideally show documentation for `impl Result<(), ()>`, rather than
generic documentation for `impl<T, E> Result<T, E>`).
I think this improvement is worthwhile, as it exposes implementations
which are not currently documented by rustdoc. The documentation for the
implementations on the aliased type are still accessible by clicking
through to the docs for that type. (Although perhaps it's now less
obvious to the user that they should click-through to get there).
2017-05-16 01:16:44 -05:00
|
|
|
/// Alias docstring
|
|
|
|
pub type MyAlias = MyStruct;
|
|
|
|
|
|
|
|
impl MyAlias {
|
|
|
|
pub fn method_on_myalias() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl MyTrait for MyAlias {}
|