2023-10-16 12:36:39 -05:00
|
|
|
// skip-filecheck
|
2021-12-11 21:02:16 -06:00
|
|
|
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);
|
|
|
|
}
|