2019-10-20 22:48:31 -05:00
|
|
|
enum Empty { }
|
|
|
|
|
|
|
|
// test matching an enum with uninhabited variants
|
|
|
|
enum Test1 {
|
|
|
|
A(Empty),
|
|
|
|
B(Empty),
|
|
|
|
C
|
|
|
|
}
|
|
|
|
|
|
|
|
// test an enum where the discriminants don't match the variant indexes
|
|
|
|
// (the optimization should do nothing here)
|
|
|
|
enum Test2 {
|
|
|
|
D = 4,
|
|
|
|
E = 5,
|
|
|
|
}
|
|
|
|
|
2020-07-27 14:22:43 -05:00
|
|
|
// EMIT_MIR uninhabited_enum_branching.main.UninhabitedEnumBranching.diff
|
|
|
|
// EMIT_MIR uninhabited_enum_branching.main.SimplifyCfg-after-uninhabited-enum-branching.after.mir
|
2019-10-20 22:48:31 -05:00
|
|
|
fn main() {
|
|
|
|
match Test1::C {
|
|
|
|
Test1::A(_) => "A(Empty)",
|
|
|
|
Test1::B(_) => "B(Empty)",
|
|
|
|
Test1::C => "C",
|
|
|
|
};
|
|
|
|
|
|
|
|
match Test2::D {
|
|
|
|
Test2::D => "D",
|
|
|
|
Test2::E => "E",
|
|
|
|
};
|
|
|
|
}
|