about summary refs log tree commit diff
path: root/tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/match-requires-both-partialeq-and-eq.rs
blob: 74394698fbcd9dd8f44e317d5422140b79ea743a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Note: It is no longer true that both `Eq` and `PartialEq` must the derived, only the later.

#[derive(Eq)]
struct Foo {
    x: u32
}

impl PartialEq for Foo {
    fn eq(&self, _: &Foo) -> bool {
        false // ha ha!
    }
}

const FOO: Foo = Foo { x: 0 };

fn main() {
    let y = Foo { x: 1 };
    match y {
        FOO => { }
        //~^ ERROR constant of non-structural type `Foo` in a pattern
        _ => { }
    }
}