mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			868 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			868 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
// compile-flags: --document-private-items --document-hidden-items
 | 
						|
 | 
						|
// This is a regression test for #98009.
 | 
						|
 | 
						|
// @has "$.index[*][?(@.name=='this_compiles')]"
 | 
						|
// @has "$.index[*][?(@.name=='this_does_not')]"
 | 
						|
// @has "$.index[*][?(@.name=='Events')]"
 | 
						|
// @has "$.index[*][?(@.name=='Other')]"
 | 
						|
// @has "$.index[*][?(@.name=='Trait')]"
 | 
						|
 | 
						|
struct Events<R>(R);
 | 
						|
 | 
						|
struct Other;
 | 
						|
 | 
						|
pub trait Trait<T> {
 | 
						|
    fn handle(value: T) -> Self;
 | 
						|
}
 | 
						|
 | 
						|
impl<T, U> Trait<U> for T where T: From<U> {
 | 
						|
    fn handle(_: U) -> Self { unimplemented!() }
 | 
						|
}
 | 
						|
 | 
						|
impl<'a, R> Trait<&'a mut Events<R>> for Other {
 | 
						|
    fn handle(_: &'a mut Events<R>) -> Self { unimplemented!() }
 | 
						|
}
 | 
						|
 | 
						|
fn this_compiles<'a, R>(value: &'a mut Events<R>) {
 | 
						|
    for _ in 0..3 {
 | 
						|
        Other::handle(&mut *value);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
fn this_does_not<'a, R>(value: &'a mut Events<R>) {
 | 
						|
    for _ in 0..3 {
 | 
						|
        Other::handle(value);
 | 
						|
    }
 | 
						|
}
 |