]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/swap.rs
iterate List by value
[rust.git] / tests / ui / swap.rs
index 95478dda0d32ea964463b03ef7b1853b4edbbfe8..5763d9e82d486779f12c1d4b9ba11f684229b33c 100644 (file)
@@ -1,20 +1,41 @@
-#![feature(plugin)]
-#![plugin(clippy)]
+// run-rustfix
 
-#![deny(clippy)]
-#![allow(blacklisted_name, unused_assignments)]
+#![warn(clippy::all)]
+#![allow(
+    clippy::blacklisted_name,
+    clippy::no_effect,
+    clippy::redundant_clone,
+    redundant_semicolons,
+    unused_assignments
+)]
 
 struct Foo(u32);
 
+#[derive(Clone)]
+struct Bar {
+    a: u32,
+    b: u32,
+}
+
+fn field() {
+    let mut bar = Bar { a: 1, b: 2 };
+
+    let temp = bar.a;
+    bar.a = bar.b;
+    bar.b = temp;
+
+    let mut baz = vec![bar.clone(), bar.clone()];
+    let temp = baz[0].a;
+    baz[0].a = baz[1].a;
+    baz[1].a = temp;
+}
+
 fn array() {
     let mut foo = [1, 2];
     let temp = foo[0];
     foo[0] = foo[1];
     foo[1] = temp;
 
-
-
-
     foo.swap(0, 1);
 }
 
@@ -24,10 +45,16 @@ fn slice() {
     foo[0] = foo[1];
     foo[1] = temp;
 
+    foo.swap(0, 1);
+}
 
+fn unswappable_slice() {
+    let foo = &mut [vec![1, 2], vec![3, 4]];
+    let temp = foo[0][1];
+    foo[0][1] = foo[1][0];
+    foo[1][0] = temp;
 
-
-    foo.swap(0, 1);
+    // swap(foo[0][1], foo[1][0]) would fail
 }
 
 fn vec() {
@@ -36,15 +63,15 @@ fn vec() {
     foo[0] = foo[1];
     foo[1] = temp;
 
-
-
-
     foo.swap(0, 1);
 }
 
+#[rustfmt::skip]
 fn main() {
+    field();
     array();
     slice();
+    unswappable_slice();
     vec();
 
     let mut a = 42;
@@ -53,32 +80,16 @@ fn main() {
     a = b;
     b = a;
 
-
-
-
-
     ; let t = a;
     a = b;
     b = t;
 
-
-
-
-
     let mut c = Foo(42);
 
     c.0 = a;
     a = c.0;
 
-
-
-
-
     ; let t = c.0;
     c.0 = a;
     a = t;
-
-
-
-
 }