]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/swap.fixed
Update upstream source from tag 'upstream/1.52.1+dfsg1'
[rustc.git] / src / tools / clippy / tests / ui / swap.fixed
CommitLineData
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
12struct Foo(u32);
13
14#[derive(Clone)]
15struct Bar {
16 a: u32,
17 b: u32,
18}
19
20fn 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
33fn array() {
34 let mut foo = [1, 2];
35 foo.swap(0, 1);
36
37 foo.swap(0, 1);
38}
39
40fn slice() {
41 let foo = &mut [1, 2];
42 foo.swap(0, 1);
43
44 foo.swap(0, 1);
45}
46
47fn 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
56fn vec() {
57 let mut foo = vec![1, 2];
58 foo.swap(0, 1);
59
60 foo.swap(0, 1);
61}
62
63#[rustfmt::skip]
64fn 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}