mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-29 20:15:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			446 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			446 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // Adapted from rustc ui test suite (ui/type-alias-impl-trait/issue-72793.rs)
 | |
| 
 | |
| #![feature(type_alias_impl_trait)]
 | |
| 
 | |
| pub trait T {
 | |
|     type Item;
 | |
| }
 | |
| 
 | |
| pub type Alias<'a> = impl T<Item = &'a ()>;
 | |
| 
 | |
| struct S;
 | |
| impl<'a> T for &'a S {
 | |
|     type Item = &'a ();
 | |
| }
 | |
| 
 | |
| #[define_opaque(Alias)]
 | |
| pub fn filter_positive<'a>() -> Alias<'a> {
 | |
|     &S
 | |
| }
 | |
| 
 | |
| fn with_positive(fun: impl Fn(Alias<'_>)) {
 | |
|     fun(filter_positive());
 | |
| }
 | |
| 
 | |
| fn main() {
 | |
|     with_positive(|_| ());
 | |
| }
 | 
