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));