summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/const_in_pattern/no-eq-branch-fail.rs
blob: fc80d51c72daa80c48f5c4c7fbdc7bcc30883f70 (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
#![warn(indirect_structural_match)]

struct NoEq;

enum Foo {
    Bar,
    Baz,
    Qux(NoEq),
}

// Even though any of these values can be compared structurally, we still disallow it in a pattern
// because `Foo` does not impl `PartialEq`.
const BAR_BAZ: Foo = if 42 == 42 {
    Foo::Baz
} else {
    Foo::Bar
};

fn main() {
    match Foo::Qux(NoEq) {
        BAR_BAZ => panic!(),
        //~^ ERROR must be annotated with `#[derive(PartialEq, Eq)]`
        _ => {}
    }
}