-// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
+// run-rustfix
+#![warn(clippy::all)]
+#![allow(
+ clippy::blacklisted_name,
+ clippy::no_effect,
+ clippy::redundant_clone,
+ redundant_semicolons,
+ unused_assignments
+)]
-#![feature(tool_lints)]
+struct Foo(u32);
+#[derive(Clone)]
+struct Bar {
+ a: u32,
+ b: u32,
+}
-#![warn(clippy::all)]
-#![allow(clippy::blacklisted_name, unused_assignments)]
+fn field() {
+ let mut bar = Bar { a: 1, b: 2 };
-struct Foo(u32);
+ 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];
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;
+
+ // swap(foo[0][1], foo[1][0]) would fail
+}
+
fn vec() {
let mut foo = vec![1, 2];
let temp = foo[0];
foo.swap(0, 1);
}
+#[rustfmt::skip]
fn main() {
+ field();
array();
slice();
+ unswappable_slice();
vec();
let mut a = 42;