mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			502 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			502 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
//@ check-pass
 | 
						|
 | 
						|
#![feature(type_alias_impl_trait)]
 | 
						|
 | 
						|
struct MyTy<'a>(Vec<u8>, &'a ());
 | 
						|
 | 
						|
impl MyTy<'_> {
 | 
						|
    fn one(&mut self) -> &mut impl Sized {
 | 
						|
        &mut self.0
 | 
						|
    }
 | 
						|
    fn two(&mut self) -> &mut (impl Sized + 'static) {
 | 
						|
        self.one()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
type Opaque2 = impl Sized;
 | 
						|
type Opaque<'a> = Opaque2;
 | 
						|
fn define<'a>() -> Opaque<'a> {}
 | 
						|
 | 
						|
fn test<'a>() {
 | 
						|
    None::<&'static Opaque<'a>>;
 | 
						|
}
 | 
						|
 | 
						|
fn one<'a, 'b: 'b>() -> &'a impl Sized {
 | 
						|
    &()
 | 
						|
}
 | 
						|
fn two<'a, 'b>() {
 | 
						|
    one::<'a, 'b>();
 | 
						|
}
 | 
						|
 | 
						|
fn main() {}
 |