20 lines
588 B
Rust
20 lines
588 B
Rust
|
// Checks that an unreachable code warning is emitted when an expression is
|
||
|
// preceded by an expression with an uninhabited type. Previously, the
|
||
|
// variable liveness analysis was "smarter" than the reachability analysis
|
||
|
// in this regard, which led to confusing "unused variable" warnings
|
||
|
// without an accompanying explanatory "unreachable expression" warning.
|
||
|
|
||
|
// check-pass
|
||
|
|
||
|
#![warn(unused_variables,unreachable_code)]
|
||
|
|
||
|
enum Foo {}
|
||
|
fn f() -> Foo {todo!()}
|
||
|
|
||
|
fn main() {
|
||
|
let x = f();
|
||
|
//~^ WARNING: unused variable: `x`
|
||
|
let _ = x;
|
||
|
//~^ WARNING: unreachable expression
|
||
|
}
|