Skip to content

Commit c5fdff2

Browse files
committed
Add a test for overflowing endpoints
1 parent 5ec2f5e commit c5fdff2

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#![deny(overflowing_literals)]
2+
3+
fn main() {
4+
let range_a = 0..256; //~ ERROR range endpoint is out of range for u8
5+
let range_b = 0..=255; // ok
6+
let range_c = 0..=256; //~ ERROR literal out of range for u8
7+
let range_d = 256..5; //~ ERROR literal out of range for u8
8+
let range_e = 0..257; //~ ERROR literal out of range for u8
9+
10+
range_a.collect::<Vec<u8>>();
11+
range_b.collect::<Vec<u8>>();
12+
range_c.collect::<Vec<u8>>();
13+
range_d.collect::<Vec<u8>>();
14+
range_e.collect::<Vec<u8>>();
15+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
error: range endpoint is out of range for u8
2+
--> $DIR/lint-range-endpoint-overflow.rs:4:19
3+
|
4+
LL | let range_a = 0..256;
5+
| ^^^^^^ help: use an inclusive range instead: `0..=255`
6+
|
7+
note: lint level defined here
8+
--> $DIR/lint-range-endpoint-overflow.rs:1:9
9+
|
10+
LL | #![deny(overflowing_literals)]
11+
| ^^^^^^^^^^^^^^^^^^^^
12+
13+
error: literal out of range for u8
14+
--> $DIR/lint-range-endpoint-overflow.rs:6:23
15+
|
16+
LL | let range_c = 0..=256;
17+
| ^^^
18+
19+
error: literal out of range for u8
20+
--> $DIR/lint-range-endpoint-overflow.rs:7:19
21+
|
22+
LL | let range_d = 256..5;
23+
| ^^^
24+
25+
error: literal out of range for u8
26+
--> $DIR/lint-range-endpoint-overflow.rs:8:22
27+
|
28+
LL | let range_e = 0..257;
29+
| ^^^
30+
31+
error: aborting due to 4 previous errors
32+

0 commit comments

Comments
 (0)