summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/uninhabited_enum_branching2.rs
blob: e22e94314d986578c8dbcbd0c5436b93a449ded8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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",
    };
}