]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/self_assignment.rs
Rollup merge of #99396 - compiler-errors:missing-tests, r=Mark-Simulacrum
[rust.git] / src / tools / clippy / tests / ui / self_assignment.rs
1 #![warn(clippy::self_assignment)]
2
3 pub struct S<'a> {
4     a: i32,
5     b: [i32; 10],
6     c: Vec<Vec<i32>>,
7     e: &'a mut i32,
8     f: &'a mut i32,
9 }
10
11 pub fn positives(mut a: usize, b: &mut u32, mut s: S) {
12     a = a;
13     *b = *b;
14     s = s;
15     s.a = s.a;
16     s.b[10] = s.b[5 + 5];
17     s.c[0][1] = s.c[0][1];
18     s.b[a] = s.b[a];
19     *s.e = *s.e;
20     s.b[a + 10] = s.b[10 + a];
21
22     let mut t = (0, 1);
23     t.1 = t.1;
24     t.0 = (t.0);
25 }
26
27 pub fn negatives_not_equal(mut a: usize, b: &mut usize, mut s: S) {
28     dbg!(&a);
29     a = *b;
30     dbg!(&a);
31     s.b[1] += s.b[1];
32     s.b[1] = s.b[2];
33     s.c[1][0] = s.c[0][1];
34     s.b[a] = s.b[*b];
35     s.b[a + 10] = s.b[a + 11];
36     *s.e = *s.f;
37
38     let mut t = (0, 1);
39     t.0 = t.1;
40 }
41
42 #[allow(clippy::mixed_read_write_in_expression)]
43 pub fn negatives_side_effects() {
44     let mut v = vec![1, 2, 3, 4, 5];
45     let mut i = 0;
46     v[{
47         i += 1;
48         i
49     }] = v[{
50         i += 1;
51         i
52     }];
53
54     fn next(n: &mut usize) -> usize {
55         let v = *n;
56         *n += 1;
57         v
58     }
59
60     let mut w = vec![1, 2, 3, 4, 5];
61     let mut i = 0;
62     let i = &mut i;
63     w[next(i)] = w[next(i)];
64     w[next(i)] = w[next(i)];
65 }
66
67 fn main() {}