]> git.lizzy.rs Git - rust.git/blob - tests/ui/misnamed_getters.rs
Lint unnecessary safety comments on statements and block tail expressions
[rust.git] / tests / ui / misnamed_getters.rs
1 #![allow(unused)]
2 #![warn(clippy::misnamed_getters)]
3
4 struct A {
5     a: u8,
6     b: u8,
7     c: u8,
8 }
9
10 impl A {
11     fn a(&self) -> &u8 {
12         &self.b
13     }
14     fn a_mut(&mut self) -> &mut u8 {
15         &mut self.b
16     }
17
18     fn b(self) -> u8 {
19         self.a
20     }
21
22     fn b_mut(&mut self) -> &mut u8 {
23         &mut self.a
24     }
25
26     fn c(&self) -> &u8 {
27         &self.b
28     }
29
30     fn c_mut(&mut self) -> &mut u8 {
31         &mut self.a
32     }
33 }
34
35 union B {
36     a: u8,
37     b: u8,
38 }
39
40 impl B {
41     unsafe fn a(&self) -> &u8 {
42         &self.b
43     }
44     unsafe fn a_mut(&mut self) -> &mut u8 {
45         &mut self.b
46     }
47
48     unsafe fn b(self) -> u8 {
49         self.a
50     }
51
52     unsafe fn b_mut(&mut self) -> &mut u8 {
53         &mut self.a
54     }
55
56     unsafe fn c(&self) -> &u8 {
57         &self.b
58     }
59
60     unsafe fn c_mut(&mut self) -> &mut u8 {
61         &mut self.a
62     }
63
64     unsafe fn a_unchecked(&self) -> &u8 {
65         &self.b
66     }
67     unsafe fn a_unchecked_mut(&mut self) -> &mut u8 {
68         &mut self.b
69     }
70
71     unsafe fn b_unchecked(self) -> u8 {
72         self.a
73     }
74
75     unsafe fn b_unchecked_mut(&mut self) -> &mut u8 {
76         &mut self.a
77     }
78
79     unsafe fn c_unchecked(&self) -> &u8 {
80         &self.b
81     }
82
83     unsafe fn c_unchecked_mut(&mut self) -> &mut u8 {
84         &mut self.a
85     }
86 }
87
88 struct D {
89     d: u8,
90     inner: A,
91 }
92
93 impl core::ops::Deref for D {
94     type Target = A;
95     fn deref(&self) -> &A {
96         &self.inner
97     }
98 }
99
100 impl core::ops::DerefMut for D {
101     fn deref_mut(&mut self) -> &mut A {
102         &mut self.inner
103     }
104 }
105
106 impl D {
107     fn a(&self) -> &u8 {
108         &self.b
109     }
110     fn a_mut(&mut self) -> &mut u8 {
111         &mut self.b
112     }
113
114     fn d(&self) -> &u8 {
115         &self.b
116     }
117     fn d_mut(&mut self) -> &mut u8 {
118         &mut self.b
119     }
120 }
121
122 fn main() {
123     // test code goes here
124 }