```
operator &+= {
associativity right
precedence
assignment
}
```

### Declarations

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

The masking addition assignment operator (`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

The masking addition assignment operator (`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

`&+=`

) silently discards any
overflow that occurs during the operation. In the following example, the
sum of `100`

and `121`

is greater than the maximum representable `Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &+= 21
// x == 31
var y: Int8 = 100
y &+= 121
// y == -35 (after overflow)
```

**Parameters:**
**lhs:** The first value to add.
**rhs:** The second value to add.

#### Declaration

`func &+=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Adds two values and stores the result in the left-hand-side variable, discarding any overflow.

The masking addition assignment operator (

`&+=`

) silently discards any overflow that occurs during the operation. In the following example, the sum of`100`

and`121`

is greater than the maximum representable`Int8`

value, so the result is the overflowed value:Parameters:lhs:The first value to add.rhs:The second value to add.## Declaration

`func &+=(lhs: inout Self, rhs: Self)`

## Declared In

`FixedWidthInteger`