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