]> git.lizzy.rs Git - rust.git/blob - tests/ui/mem_discriminant.rs
Merge pull request #3918 from matthiaskrgr/typos
[rust.git] / tests / ui / mem_discriminant.rs
1 #![deny(clippy::mem_discriminant_non_enum)]
2
3 use std::mem;
4
5 enum Foo {
6     One(usize),
7     Two(u8),
8 }
9
10 struct A(Foo);
11
12 fn main() {
13     // bad
14     mem::discriminant(&"hello");
15     mem::discriminant(&&Some(2));
16     mem::discriminant(&&None::<u8>);
17     mem::discriminant(&&Foo::One(5));
18     mem::discriminant(&&Foo::Two(5));
19     mem::discriminant(&A(Foo::One(0)));
20
21     let ro = &Some(3);
22     let rro = &ro;
23     mem::discriminant(&ro);
24     mem::discriminant(rro);
25     mem::discriminant(&rro);
26
27     macro_rules! mem_discriminant_but_in_a_macro {
28         ($param:expr) => {
29             mem::discriminant($param)
30         };
31     }
32
33     mem_discriminant_but_in_a_macro!(&rro);
34
35     let rrrrro = &&&rro;
36     mem::discriminant(&rrrrro);
37     mem::discriminant(*rrrrro);
38
39     // ok
40     mem::discriminant(&Some(2));
41     mem::discriminant(&None::<u8>);
42     mem::discriminant(&Foo::One(5));
43     mem::discriminant(&Foo::Two(5));
44     mem::discriminant(ro);
45     mem::discriminant(*rro);
46     mem::discriminant(****rrrrro);
47 }