mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 15:05:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			710 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			710 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
//@ build-pass
 | 
						|
 | 
						|
#![feature(coroutines, stmt_expr_attributes)]
 | 
						|
// FIXME(static_mut_refs): Do not allow `static_mut_refs` lint
 | 
						|
#![allow(static_mut_refs)]
 | 
						|
 | 
						|
static mut A: [i32; 5] = [1, 2, 3, 4, 5];
 | 
						|
 | 
						|
fn is_send_sync<T: Send + Sync>(_: T) {}
 | 
						|
 | 
						|
fn main() {
 | 
						|
    unsafe {
 | 
						|
        let gen_index = #[coroutine]
 | 
						|
        static || {
 | 
						|
            let u = A[{
 | 
						|
                yield;
 | 
						|
                1
 | 
						|
            }];
 | 
						|
        };
 | 
						|
        let gen_match = #[coroutine]
 | 
						|
        static || match A {
 | 
						|
            i if {
 | 
						|
                yield;
 | 
						|
                true
 | 
						|
            } =>
 | 
						|
            {
 | 
						|
                ()
 | 
						|
            }
 | 
						|
            _ => (),
 | 
						|
        };
 | 
						|
        is_send_sync(gen_index);
 | 
						|
        is_send_sync(gen_match);
 | 
						|
    }
 | 
						|
}
 |