mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			699 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			699 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![feature(never_type)]
 | |
| 
 | |
| fn loop_break_return() -> i32 {
 | |
|     let loop_value = loop { break return 0 }; // ok
 | |
| }
 | |
| 
 | |
| fn loop_break_loop() -> i32 {
 | |
|     let loop_value = loop { break loop {} }; // ok
 | |
| }
 | |
| 
 | |
| fn loop_break_break() -> i32 { //~ ERROR mismatched types
 | |
|     let loop_value = loop { break break };
 | |
| }
 | |
| 
 | |
| fn loop_break_return_2() -> i32 {
 | |
|     let loop_value = loop { break { return 0; () } }; // ok
 | |
| }
 | |
| 
 | |
| enum Void {}
 | |
| 
 | |
| fn get_void() -> Void {
 | |
|     panic!()
 | |
| }
 | |
| 
 | |
| fn loop_break_void() -> i32 { //~ ERROR mismatched types
 | |
|     let loop_value = loop { break get_void() };
 | |
| }
 | |
| 
 | |
| fn get_never() -> ! {
 | |
|     panic!()
 | |
| }
 | |
| 
 | |
| fn loop_break_never() -> i32 {
 | |
|     let loop_value = loop { break get_never() }; // ok
 | |
| }
 | |
| 
 | |
| fn main() {}
 | 
