1 #![allow(dead_code)]
2 #![allow(
3     clippy::derive_partial_eq_without_eq,
4     clippy::extra_unused_type_parameters,
5     clippy::let_underscore_untyped,
6     clippy::let_unit_value,
7     clippy::match_same_arms
8 )]
9 
10 #[remain::sorted]
11 #[derive(PartialEq)]
12 pub enum TestEnum {
13     A,
14     B,
15     #[remain::unsorted]
16     Ignored,
17     C,
18     #[unsorted]
19     AlsoIgnored,
20     D,
21     __Nonexhaustive,
22 }
23 
24 #[remain::sorted]
25 #[derive(PartialEq)]
26 pub struct TestStruct {
27     a: usize,
28     b: usize,
29     #[unsorted]
30     ignored: usize,
31     c: usize,
32     #[remain::unsorted]
33     also_ignored: usize,
34     d: usize,
35 }
36 
37 #[test]
test_attrs()38 fn test_attrs() {
39     fn is_partial_eq<T: PartialEq>() -> bool {
40         true
41     }
42 
43     assert!(is_partial_eq::<TestEnum>());
44     assert!(is_partial_eq::<TestStruct>());
45 }
46 
47 #[test]
48 #[remain::check]
test_let()49 fn test_let() {
50     let value = TestEnum::A;
51 
52     #[sorted]
53     let () = match value {
54         TestEnum::A => {}
55         #[remain::unsorted]
56         TestEnum::Ignored => {}
57         TestEnum::B => {}
58         #[unsorted]
59         TestEnum::AlsoIgnored => {}
60         TestEnum::C => {}
61         _ => {}
62     };
63 }
64 
65 #[test]
66 #[remain::check]
test_match()67 fn test_match() {
68     let value = TestEnum::A;
69 
70     #[sorted]
71     match value {
72         TestEnum::A => {}
73         TestEnum::B => {}
74         #[unsorted]
75         TestEnum::Ignored => {}
76         TestEnum::C => {}
77         #[remain::unsorted]
78         TestEnum::AlsoIgnored => {}
79         _ => {}
80     }
81 }
82