mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // 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
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | 
