mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
0478d26c8b
Initialization expressions are now generated when index is bound to a variable. FIX: Check to see if variables are used after swap FIX: rename StmtKind::Local to StmtKind::Let
72 lines
1.3 KiB
Rust
72 lines
1.3 KiB
Rust
#![warn(clippy::manual_swap)]
|
|
#![no_main]
|
|
|
|
fn swap1() {
|
|
let mut v = [3, 2, 1, 0];
|
|
let index = v[0];
|
|
//~^ ERROR: this looks like you are swapping elements of `v` manually
|
|
v[0] = v[index];
|
|
v[index] = index;
|
|
}
|
|
|
|
fn swap2() {
|
|
let mut v = [3, 2, 1, 0];
|
|
let tmp = v[0];
|
|
v[0] = v[1];
|
|
v[1] = tmp;
|
|
// check not found in this scope.
|
|
let _ = tmp;
|
|
}
|
|
|
|
fn swap3() {
|
|
let mut v = [3, 2];
|
|
let i1 = 0;
|
|
let i2 = 1;
|
|
let temp = v[i1];
|
|
v[i1] = v[i2];
|
|
v[i2] = temp;
|
|
}
|
|
|
|
fn swap4() {
|
|
let mut v = [3, 2, 1];
|
|
let i1 = 0;
|
|
let i2 = 1;
|
|
let temp = v[i1];
|
|
v[i1] = v[i2 + 1];
|
|
v[i2 + 1] = temp;
|
|
}
|
|
|
|
fn swap5() {
|
|
let mut v = [0, 1, 2, 3];
|
|
let i1 = 0;
|
|
let i2 = 1;
|
|
let temp = v[i1];
|
|
v[i1] = v[i2 + 1];
|
|
v[i2 + 1] = temp;
|
|
}
|
|
|
|
fn swap6() {
|
|
let mut v = [0, 1, 2, 3];
|
|
let index = v[0];
|
|
//~^ ERROR: this looks like you are swapping elements of `v` manually
|
|
v[0] = v[index + 1];
|
|
v[index + 1] = index;
|
|
}
|
|
|
|
fn swap7() {
|
|
let mut v = [0, 1, 2, 3];
|
|
let i1 = 0;
|
|
let i2 = 6;
|
|
let tmp = v[i1 * 3];
|
|
v[i1 * 3] = v[i2 / 2];
|
|
v[i2 / 2] = tmp;
|
|
}
|
|
|
|
fn swap8() {
|
|
let mut v = [1, 2, 3, 4];
|
|
let i1 = 1;
|
|
let i2 = 1;
|
|
let tmp = v[i1 + i2];
|
|
v[i1 + i2] = v[i2];
|
|
v[i2] = tmp;
|
|
}
|