File tree Expand file tree Collapse file tree 2 files changed +107
-19
lines changed Expand file tree Collapse file tree 2 files changed +107
-19
lines changed Original file line number Diff line number Diff line change 1
1
#![ warn( clippy:: implicit_saturating_sub) ]
2
2
3
3
fn main ( ) {
4
- let mut end = 10 ;
5
- let mut start = 5 ;
6
- let mut i : u32 = end - start ;
4
+ let end_8 : u8 = 10 ;
5
+ let start_8 : u8 = 5 ;
6
+ let mut i_8 : u8 = end_8 - start_8 ;
7
7
8
- if i > 0 {
9
- i -= 1 ;
8
+ // Lint
9
+ if i_8 > 0 {
10
+ i_8 -= 1 ;
10
11
}
11
12
12
- match end {
13
+ match end_8 {
13
14
10 => {
14
- if i > 0 {
15
- i -= 1 ;
15
+ // Lint
16
+ if i_8 > 0 {
17
+ i_8 -= 1 ;
16
18
}
17
19
} ,
18
- 11 => i += 1 ,
19
- _ => i = 0 ,
20
+ 11 => i_8 += 1 ,
21
+ _ => i_8 = 0 ,
20
22
}
23
+
24
+ let end_16: u16 = 35 ;
25
+ let start_16: u16 = 40 ;
26
+
27
+ let mut i_16: u16 = end_16 - start_16;
28
+
29
+ // Lint
30
+ if i_16 > 0 {
31
+ i_16 -= 1 ;
32
+ }
33
+
34
+ let mut end_32: u32 = 7000 ;
35
+ let mut start_32: u32 = 7010 ;
36
+
37
+ let mut i_32: u32 = end_32 - start_32;
38
+
39
+ // Lint
40
+ if i_32 != 0 {
41
+ i_32 -= 1 ;
42
+ }
43
+
44
+ // No Lint
45
+ if i_32 > 0 {
46
+ i_16 += 1 ;
47
+ }
48
+
49
+ // No Lint
50
+ if i_32 != 0 {
51
+ end_32 -= 1 ;
52
+ start_32 += 1 ;
53
+ }
54
+
55
+ let mut end_64: u64 = 75001 ;
56
+ let mut start_64: u64 = 75000 ;
57
+
58
+ let mut i_64: u64 = end_64 - start_64;
59
+
60
+ // Lint
61
+ if i_64 > 0 {
62
+ i_64 -= 1 ;
63
+ }
64
+
65
+ // No Lint
66
+ if i_64 >= 1 {
67
+ i_64 -= 1 ;
68
+ }
69
+
70
+ // No Lint
71
+ if i_64 > 0 {
72
+ end_64 -= 1 ;
73
+ }
74
+
75
+ // Should signed integers trigger the lint ?
76
+ // let endi_64: i64 = 45;
77
+ // let starti_64: i64 = 44;
78
+
79
+ // let mut ii_64 = endi_64 - starti_64;
80
+
81
+ // Should this produce a warning
82
+ // if ii_64 > 0 {
83
+ // ii_64 -= 1;
84
+ // }
21
85
}
Original file line number Diff line number Diff line change 1
1
error: Implicitly performing saturating subtraction
2
- --> $DIR/implicit_saturating_sub.rs:8 :5
2
+ --> $DIR/implicit_saturating_sub.rs:9 :5
3
3
|
4
- LL | / if i > 0 {
5
- LL | | i -= 1;
4
+ LL | / if i_8 > 0 {
5
+ LL | | i_8 -= 1;
6
6
LL | | }
7
- | |_____^ help: try: `i .saturating_sub(1);`
7
+ | |_____^ help: try: `i_8 = i_8 .saturating_sub(1);`
8
8
|
9
9
= note: `-D clippy::implicit-saturating-sub` implied by `-D warnings`
10
10
11
11
error: Implicitly performing saturating subtraction
12
- --> $DIR/implicit_saturating_sub.rs:14 :13
12
+ --> $DIR/implicit_saturating_sub.rs:16 :13
13
13
|
14
- LL | / if i > 0 {
15
- LL | | i -= 1;
14
+ LL | / if i_8 > 0 {
15
+ LL | | i_8 -= 1;
16
16
LL | | }
17
- | |_____________^ help: try: `i .saturating_sub(1);`
17
+ | |_____________^ help: try: `i_8 = i_8 .saturating_sub(1);`
18
18
19
- error: aborting due to 2 previous errors
19
+ error: Implicitly performing saturating subtraction
20
+ --> $DIR/implicit_saturating_sub.rs:30:5
21
+ |
22
+ LL | / if i_16 > 0 {
23
+ LL | | i_16 -= 1;
24
+ LL | | }
25
+ | |_____^ help: try: `i_16 = i_16.saturating_sub(1);`
26
+
27
+ error: Implicitly performing saturating subtraction
28
+ --> $DIR/implicit_saturating_sub.rs:40:5
29
+ |
30
+ LL | / if i_32 != 0 {
31
+ LL | | i_32 -= 1;
32
+ LL | | }
33
+ | |_____^ help: try: `i_32 = i_32.saturating_sub(1);`
34
+
35
+ error: Implicitly performing saturating subtraction
36
+ --> $DIR/implicit_saturating_sub.rs:61:5
37
+ |
38
+ LL | / if i_64 > 0 {
39
+ LL | | i_64 -= 1;
40
+ LL | | }
41
+ | |_____^ help: try: `i_64 = i_64.saturating_sub(1);`
42
+
43
+ error: aborting due to 5 previous errors
20
44
You can’t perform that action at this time.
0 commit comments