2023-10-16 12:36:39 -05:00
|
|
|
// skip-filecheck
|
2021-05-23 08:41:02 -05:00
|
|
|
enum Empty { }
|
|
|
|
|
|
|
|
// test matching an enum with uninhabited variants
|
|
|
|
enum Test1 {
|
|
|
|
A(Empty),
|
|
|
|
B(Empty),
|
|
|
|
C,
|
|
|
|
D,
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Plop {
|
|
|
|
xx: u32,
|
|
|
|
test1: Test1,
|
|
|
|
}
|
|
|
|
|
|
|
|
// EMIT_MIR uninhabited_enum_branching2.main.UninhabitedEnumBranching.diff
|
|
|
|
// EMIT_MIR uninhabited_enum_branching2.main.SimplifyCfg-after-uninhabited-enum-branching.after.mir
|
|
|
|
fn main() {
|
|
|
|
let plop = Plop { xx: 51, test1: Test1::C };
|
|
|
|
|
|
|
|
match &plop.test1 {
|
|
|
|
Test1::A(_) => "A(Empty)",
|
|
|
|
Test1::B(_) => "B(Empty)",
|
|
|
|
Test1::C => "C",
|
|
|
|
Test1::D => "D",
|
|
|
|
};
|
|
|
|
|
|
|
|
match plop.test1 {
|
|
|
|
Test1::A(_) => "A(Empty)",
|
|
|
|
Test1::B(_) => "B(Empty)",
|
|
|
|
Test1::C => "C",
|
|
|
|
Test1::D => "D",
|
|
|
|
};
|
|
|
|
}
|