mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			19 lines
		
	
	
		
			352 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			352 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //@ check-pass
 | |
| 
 | |
| trait Foo<'a> {
 | |
|     type Input;
 | |
| }
 | |
| 
 | |
| impl<F: Fn(u32)> Foo<'_> for F {
 | |
|     type Input = u32;
 | |
| }
 | |
| 
 | |
| trait SuperFn: for<'a> Foo<'a> + for<'a> Fn(<Self as Foo<'a>>::Input) {}
 | |
| impl<T> SuperFn for T where T: for<'a> Fn(<Self as Foo<'a>>::Input) + for<'a> Foo<'a> {}
 | |
| 
 | |
| fn needs_super(_: impl SuperFn) {}
 | |
| 
 | |
| fn main() {
 | |
|     needs_super(|_: u32| {});
 | |
| }
 | 
