]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | // run-rustfix |
2 | ||
3 | #![warn(clippy::all)] | |
4 | #![allow( | |
5 | clippy::blacklisted_name, | |
6 | clippy::no_effect, | |
7 | clippy::redundant_clone, | |
8 | redundant_semicolons, | |
9 | unused_assignments | |
10 | )] | |
11 | ||
12 | struct Foo(u32); | |
13 | ||
14 | #[derive(Clone)] | |
15 | struct Bar { | |
16 | a: u32, | |
17 | b: u32, | |
18 | } | |
19 | ||
20 | fn field() { | |
21 | let mut bar = Bar { a: 1, b: 2 }; | |
22 | ||
23 | let temp = bar.a; | |
24 | bar.a = bar.b; | |
25 | bar.b = temp; | |
26 | ||
27 | let mut baz = vec![bar.clone(), bar.clone()]; | |
28 | let temp = baz[0].a; | |
29 | baz[0].a = baz[1].a; | |
30 | baz[1].a = temp; | |
31 | } | |
32 | ||
33 | fn array() { | |
34 | let mut foo = [1, 2]; | |
35 | foo.swap(0, 1); | |
36 | ||
37 | foo.swap(0, 1); | |
38 | } | |
39 | ||
40 | fn slice() { | |
41 | let foo = &mut [1, 2]; | |
42 | foo.swap(0, 1); | |
43 | ||
44 | foo.swap(0, 1); | |
45 | } | |
46 | ||
47 | fn unswappable_slice() { | |
48 | let foo = &mut [vec![1, 2], vec![3, 4]]; | |
49 | let temp = foo[0][1]; | |
50 | foo[0][1] = foo[1][0]; | |
51 | foo[1][0] = temp; | |
52 | ||
53 | // swap(foo[0][1], foo[1][0]) would fail | |
54 | } | |
55 | ||
56 | fn vec() { | |
57 | let mut foo = vec![1, 2]; | |
58 | foo.swap(0, 1); | |
59 | ||
60 | foo.swap(0, 1); | |
61 | } | |
62 | ||
63 | #[rustfmt::skip] | |
64 | fn main() { | |
65 | field(); | |
66 | array(); | |
67 | slice(); | |
68 | unswappable_slice(); | |
69 | vec(); | |
70 | ||
71 | let mut a = 42; | |
72 | let mut b = 1337; | |
73 | ||
74 | std::mem::swap(&mut a, &mut b); | |
75 | ||
76 | ; std::mem::swap(&mut a, &mut b); | |
77 | ||
78 | let mut c = Foo(42); | |
79 | ||
80 | std::mem::swap(&mut c.0, &mut a); | |
81 | ||
82 | ; std::mem::swap(&mut c.0, &mut a); | |
83 | } |