File tree Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Original file line number Diff line number Diff line change 1+ #![ deny( unreachable_code) ]
2+ #![ allow( deprecated, invalid_value) ]
3+
4+ enum Void { }
5+
6+ fn with_void ( ) {
7+ if false {
8+ unsafe {
9+ //~^ ERROR unreachable expression
10+ std:: mem:: uninitialized :: < Void > ( ) ;
11+ }
12+ }
13+
14+ println ! ( ) ;
15+ }
16+
17+ fn infallible ( ) -> std:: convert:: Infallible {
18+ loop { }
19+ }
20+
21+ fn with_infallible ( ) {
22+ if false {
23+ //~^ ERROR unreachable expression
24+ infallible ( ) ;
25+ }
26+
27+ println ! ( )
28+ }
29+
30+ fn main ( ) { }
Original file line number Diff line number Diff line change 1+ error: unreachable expression
2+ --> $DIR/void-branch.rs:8:9
3+ |
4+ LL | / unsafe {
5+ LL | |
6+ LL | | std::mem::uninitialized::<Void>();
7+ | | --------------------------------- any code following this expression is unreachable
8+ LL | | }
9+ | |_________^ unreachable expression
10+ |
11+ note: this expression has type `Void`, which is uninhabited
12+ --> $DIR/void-branch.rs:10:13
13+ |
14+ LL | std::mem::uninitialized::<Void>();
15+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16+ note: the lint level is defined here
17+ --> $DIR/void-branch.rs:1:9
18+ |
19+ LL | #![deny(unreachable_code)]
20+ | ^^^^^^^^^^^^^^^^
21+
22+ error: unreachable expression
23+ --> $DIR/void-branch.rs:22:14
24+ |
25+ LL | if false {
26+ | ______________^
27+ LL | |
28+ LL | | infallible();
29+ | | ------------ any code following this expression is unreachable
30+ LL | | }
31+ | |_____^ unreachable expression
32+ |
33+ note: this expression has type `Infallible`, which is uninhabited
34+ --> $DIR/void-branch.rs:24:9
35+ |
36+ LL | infallible();
37+ | ^^^^^^^^^^^^
38+
39+ error: aborting due to 2 previous errors
40+
You can’t perform that action at this time.
0 commit comments