2 #![feature(never_type, exhaustive_patterns)]
3 #![warn(unreachable_code)]
4 #![warn(unreachable_patterns)]
8 impl From<Void> for i32 {
9 fn from(v: Void) -> i32 {
14 fn bar(x: Result<!, i32>) -> Result<u32, i32> {
18 fn foo(x: Result<!, i32>) -> Result<u32, i32> {
19 let y = (match x { Ok(n) => Ok(n as u32), Err(e) => Err(e) })?;
20 //~^ WARN unreachable pattern
21 //~| WARN unreachable expression
25 fn qux(x: Result<u32, Void>) -> Result<u32, i32> {
29 fn vom(x: Result<u32, Void>) -> Result<u32, i32> {
30 let y = (match x { Ok(n) => Ok(n), Err(e) => Err(e) })?;
31 //~^ WARN unreachable pattern
37 let _ = bar(Err(123));
38 let _ = foo(Err(123));