33 lines
550 B
Rust
33 lines
550 B
Rust
|
enum Empty {}
|
||
|
|
||
|
enum S {
|
||
|
A(Empty),
|
||
|
B,
|
||
|
C,
|
||
|
}
|
||
|
|
||
|
use S::*;
|
||
|
|
||
|
// EMIT_MIR uninhabited_fallthrough_elimination.keep_fallthrough.UninhabitedEnumBranching.diff
|
||
|
fn keep_fallthrough(s: S) -> u32 {
|
||
|
match s {
|
||
|
A(_) => 1,
|
||
|
B => 2,
|
||
|
_ => 3,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// EMIT_MIR uninhabited_fallthrough_elimination.eliminate_fallthrough.UninhabitedEnumBranching.diff
|
||
|
fn eliminate_fallthrough(s: S) -> u32 {
|
||
|
match s {
|
||
|
C => 1,
|
||
|
B => 2,
|
||
|
_ => 3,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
keep_fallthrough(B);
|
||
|
eliminate_fallthrough(B);
|
||
|
}
|