Swift

Swift Mutations

StatementBlock

Before

func f() { x = 1 }

After

func f() {}

Condition

Before

if x > 0 { print(x) }

After

if true { print(x) }
if false { print(x) }

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

let x = a > b

After

let x = a <= b
let x = a >= b

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 += y

After

x -= y
x = y

Assign - BitAndAssign

Before

x &= y

After

x |= y
x = y

Assign - BitOrAssign

Before

x |= y

After

x &= y
x = y

Assign - BitXorAssign

Before

x ^= y

After

x &= y
x = y

Assign - DivAssign

Before

x /= y

After

x *= y
x = y

Assign - MulAssign

Before

x *= y

After

x /= y
x = y

Assign - NormalAssign

Before

x = y

After

x += y
x -= y

Assign - RemAssign

Before

x %= y

After

x *= y
x = y

Assign - ShlAssign

Before

x <<= y

After

x >>= y
x = y

Assign - ShrAssign

Before

x >>= y

After

x <<= y
x = y

Assign - SubAssign

Before

x -= y

After

x += y
x = y

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

let x = 42

After

let x = 0
let x = 1
let x = -1

DictDecl

Before

let x = ["a": 1, "b": 2]

After

let x = [:]

TupleDecl

Before

let x = (1, 2)

After

let x = ()

UnaryNot

Before

let x = !y

After

let x = y

OptionalChain - Literal

Before

let x = foo?.bar

After

let x = foo.bar

SwitchCase

Before

switch x {
case 1:
    print("one")
default:
    break
}

After

switch x {

default:
    break
}
switch x {
case 1:
    print("one")
}

Range - Exclusive

Before

for i in 0..<10 { }

After

for i in 0...10 { }

Range - Inclusive

Before

for i in 0...10 { }

After

for i in 0..<10 { }