summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/src/docs/ineffective_bit_mask.txt
blob: f6e7ef556215b891e29665cb7f080ed4cdab315c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
### What it does
Checks for bit masks in comparisons which can be removed
without changing the outcome. The basic structure can be seen in the
following table:

|Comparison| Bit Op   |Example     |equals |
|----------|----------|------------|-------|
|`>` / `<=`|`\|` / `^`|`x \| 2 > 3`|`x > 3`|
|`<` / `>=`|`\|` / `^`|`x ^ 1 < 4` |`x < 4`|

### Why is this bad?
Not equally evil as [`bad_bit_mask`](#bad_bit_mask),
but still a bit misleading, because the bit mask is ineffective.

### Known problems
False negatives: This lint will only match instances
where we have figured out the math (which is for a power-of-two compared
value). This means things like `x | 1 >= 7` (which would be better written
as `x >= 6`) will not be reported (but bit masks like this are fairly
uncommon).

### Example
```
if (x | 1 > 3) {  }
```