Skip to content

Commit 430b4e1

Browse files
committed
moved renamed docs | break-divergin-value.rs
1 parent c68032f commit 430b4e1

File tree

2 files changed

+56
-37
lines changed

2 files changed

+56
-37
lines changed

tests/ui/break-diverging-value.rs

Lines changed: 0 additions & 37 deletions
This file was deleted.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
//! Tests type mismatches with `break` and diverging types in loops
2+
3+
#![feature(never_type)]
4+
5+
fn loop_break_return() -> i32 {
6+
let loop_value = loop {
7+
break return 0;
8+
}; // ok
9+
}
10+
11+
fn loop_break_loop() -> i32 {
12+
let loop_value = loop {
13+
break loop {};
14+
}; // ok
15+
}
16+
17+
fn loop_break_break() -> i32 {
18+
//~^ ERROR mismatched types
19+
let loop_value = loop {
20+
break break;
21+
};
22+
}
23+
24+
fn loop_break_return_2() -> i32 {
25+
let loop_value = loop {
26+
break {
27+
return 0;
28+
()
29+
};
30+
}; // ok
31+
}
32+
33+
enum Void {}
34+
35+
fn get_void() -> Void {
36+
panic!()
37+
}
38+
39+
fn loop_break_void() -> i32 {
40+
//~^ ERROR mismatched types
41+
let loop_value = loop {
42+
break get_void();
43+
};
44+
}
45+
46+
fn get_never() -> ! {
47+
panic!()
48+
}
49+
50+
fn loop_break_never() -> i32 {
51+
let loop_value = loop {
52+
break get_never();
53+
}; // ok
54+
}
55+
56+
fn main() {}

0 commit comments

Comments
 (0)