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