Java

Java Mutations

StatementBlock

Before

if (x) { y(); }

After

if (x) {}

Condition

Before

if (x) { y(); }

After

if (true) { y(); }
if (false) { y(); }

BinaryOp - Add

Before

int x = a + b;

After

int x = a - b;
int x = a * b;

BinaryOp - And

Before

boolean x = a && b;

After

boolean x = a || b;

BinaryOp - BitAnd

Before

int x = a & b;

After

int x = a | b;
int x = a ^ b;

BinaryOp - BitOr

Before

int x = a | b;

After

int x = a & b;
int x = a ^ b;

BinaryOp - BitXor

Before

int x = a ^ b;

After

int x = a & b;
int x = a | b;

BinaryOp - Div

Before

int x = a / b;

After

int x = a * b;
int x = a - b;

BinaryOp - Eq

Before

boolean x = a == b;

After

boolean x = a != b;

BinaryOp - Gt

Before

assert x > 0;

After

assert x <= 0;
assert x >= 0;

BinaryOp - Gte

Before

boolean x = a >= b;

After

boolean x = a < b;
boolean x = a > b;

BinaryOp - Lt

Before

boolean x = a < b;

After

boolean x = a >= b;
boolean x = a <= b;

BinaryOp - Lte

Before

boolean x = a <= b;

After

boolean x = a > b;
boolean x = a < b;

BinaryOp - Mul

Before

int x = a * b;

After

int x = a / b;
int x = a + b;

BinaryOp - Or

Before

boolean x = a || b;

After

boolean x = a && b;

BinaryOp - Rem

Before

int x = a % b;

After

int x = a * b;
int x = a / b;

BinaryOp - Shl

Before

int x = a << b;

After

int x = a >> b;

BinaryOp - Shr

Before

int x = a >> b;

After

int x = a << b;

BinaryOp - Ne

Before

boolean x = a != b;

After

boolean x = a == b;

BinaryOp - Sub

Before

int x = a - b;

After

int x = a + b;
int 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

int[] x = {1, 2, 3};

After

int[] x = {};

Literal - BoolTrue

Before

boolean x = true;

After

boolean x = false;

Literal - BoolFalse

Before

boolean x = false;

After

boolean x = true;

Literal - String

Before

String x = "hello";

After

String x = "";

Literal - EmptyString

Before

String x = "";

After

String x = "bough";

Literal - Number

Before

x = 1;

After

x = 0;
x = 1;
x = -1;

Assert

Before

assert x > 0;

After

;

UnaryNot

Before

boolean x = !y;

After

boolean x = y;

SwitchCase

Before

switch (x) {
    case 1:
        break;
    case 2:
        break;
}

After

switch (x) {
    
    case 2:
        break;
}
switch (x) {
    case 1:
        break;
    
}