| // Ensure that rustdoc gives errors for trait impls inside function bodies that don't resolve. | |
| // See https://github.com/rust-lang/rust/pull/73566 | |
| pub struct ValidType; | |
| pub trait ValidTrait {} | |
| pub trait NeedsBody { | |
| type Item; | |
| fn f(); | |
| } | |
| /// This function has docs | |
| pub fn f<B: UnknownBound>(a: UnknownType, b: B) { | |
| //~^ ERROR cannot find trait `UnknownBound` in this scope | |
| //~| ERROR cannot find type `UnknownType` in this scope | |
| impl UnknownTrait for ValidType {} //~ ERROR cannot find trait `UnknownTrait` | |
| impl<T: UnknownBound> UnknownTrait for T {} | |
| //~^ ERROR cannot find trait `UnknownBound` in this scope | |
| //~| ERROR cannot find trait `UnknownTrait` in this scope | |
| impl ValidTrait for UnknownType {} | |
| //~^ ERROR cannot find type `UnknownType` in this scope | |
| impl ValidTrait for ValidType where ValidTrait: UnknownBound {} | |
| //~^ ERROR cannot find trait `UnknownBound` in this scope | |
| /// This impl has documentation | |
| impl NeedsBody for ValidType { | |
| type Item = UnknownType; | |
| //~^ ERROR cannot find type `UnknownType` in this scope | |
| /// This function has documentation | |
| fn f() { | |
| <UnknownTypeShouldBeIgnored>::a(); | |
| content::shouldnt::matter(); | |
| unknown_macro!(); | |
| //~^ ERROR cannot find macro `unknown_macro` in this scope | |
| /// This is documentation for a macro | |
| macro_rules! can_define_macros_here_too { | |
| () => { | |
| this::content::should::also::be::ignored() | |
| } | |
| } | |
| can_define_macros_here_too!(); | |
| /// This also is documented. | |
| pub fn doubly_nested(c: UnknownType) { | |
| //~^ ERROR cannot find type `UnknownType` in this scope | |
| } | |
| } | |
| } | |
| } |