| #![allow(unused_variables)] | |
| #![allow(unused_assignments)] | |
| #![allow(dead_code)] | |
| #![deny(unreachable_code)] | |
| fn a() { | |
| // Here the tail expression is considered unreachable: | |
| let x = { | |
| return; | |
| 22 //~ ERROR unreachable | |
| }; | |
| } | |
| fn b() { | |
| // Here the `x` assignment is considered unreachable, not the block: | |
| let x = { | |
| return; | |
| }; | |
| } | |
| fn c() { | |
| // Here the `println!` is unreachable: | |
| let x = { | |
| return; | |
| println!("foo"); | |
| //~^ ERROR unreachable statement | |
| 22 | |
| }; | |
| } | |
| fn main() { } |