Rust
Rust Mutations
StatementBlock
Before
if x > 0 { }
After
if x > 0 {}
Condition
Before
if x > 0 { }
After
if true { }
if false { }
BinaryOp - Add
Before
let x = a + b;
After
let x = a - b;
let x = a * b;
BinaryOp - And
Before
let x = a && b;
After
let x = a || b;
BinaryOp - BitAnd
Before
let x = a & b;
After
let x = a | b;
let x = a ^ b;
BinaryOp - BitOr
Before
let x = a | b;
After
let x = a & b;
let x = a ^ b;
BinaryOp - BitXor
Before
let x = a ^ b;
After
let x = a & b;
let x = a | b;
BinaryOp - Div
Before
let x = a / b;
After
let x = a * b;
let x = a - b;
BinaryOp - Eq
Before
let x = a == b;
After
let x = a != b;
BinaryOp - Gt
Before
if x > 0 { }
After
if x <= 0 { }
if x >= 0 { }
BinaryOp - Gte
Before
let x = a >= b;
After
let x = a < b;
let x = a > b;
BinaryOp - Lt
Before
let x = a < b;
After
let x = a >= b;
let x = a <= b;
BinaryOp - Lte
Before
let x = a <= b;
After
let x = a > b;
let x = a < b;
BinaryOp - Mul
Before
let x = a * b;
After
let x = a / b;
let x = a + b;
BinaryOp - Or
Before
let x = a || b;
After
let x = a && b;
BinaryOp - Rem
Before
let x = a % b;
After
let x = a * b;
let x = a / b;
BinaryOp - Shl
Before
let x = a << b;
After
let x = a >> b;
BinaryOp - Shr
Before
let x = a >> b;
After
let x = a << b;
BinaryOp - Ne
Before
let x = a != b;
After
let x = a == b;
BinaryOp - Sub
Before
let x = a - b;
After
let x = a + b;
let x = a / b;
Assign - AddAssign
Before
x += 1;
After
x -= 1;
x = 1;
Assign - BitAndAssign
Before
x &= 1;
After
x |= 1;
x = 1;
Assign - BitOrAssign
Before
x |= 1;
After
x &= 1;
x = 1;
Assign - BitXorAssign
Before
x ^= 1;
After
x &= 1;
x = 1;
Assign - DivAssign
Before
x /= 1;
After
x *= 1;
x = 1;
Assign - MulAssign
Before
x *= 1;
After
x /= 1;
x = 1;
Assign - NormalAssign
Before
x = 1;
After
x += 1;
x -= 1;
Assign - RemAssign
Before
x %= 1;
After
x *= 1;
x = 1;
Assign - ShlAssign
Before
x <<= 1;
After
x >>= 1;
x = 1;
Assign - ShrAssign
Before
x >>= 1;
After
x <<= 1;
x = 1;
Assign - SubAssign
Before
x -= 1;
After
x += 1;
x = 1;
ArrayDecl - Inline
Before
let x = [1, 2, 3];
After
let x = [];
Literal - BoolTrue
Before
let x = true;
After
let x = false;
Literal - BoolFalse
Before
let x = false;
After
let x = true;
Literal - String
Before
let x = "hello";
After
let x = "";
Literal - EmptyString
Before
let x = "";
After
let x = "bough";
Literal - Number
Before
x = 1;
After
x = 0;
x = 1;
x = -1;
TupleDecl
Before
let x = (1, 2, 3);
After
let x = ();
UnaryNot
Before
let x = !y;
After
let x = y;
SwitchCase
Before
match x {
n if n > 5 => n,
_ => 2,
}
After
match x {
_ => 2,
}
match x {
n if n > 5 => n,
}
Range - Exclusive
Before
let x = ..5;
After
let x = ..=5;
Range - Inclusive
Before
let x = ..=5;
After
let x = ..5;
Range - From
Before
let x = 1..;
After
let x = ..;
MatchPattern
Before
match x {
1 => println!("one"),
_ => println!("other"),
}
After
match x {
_ => println!("one"),
_ => println!("other"),
}