about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2019-04-27 12:45:17 +0100
committervarkor <github@varkor.com>2019-04-30 22:43:51 +0100
commitc5fdff26b58704f5b346ab2c96ea784f959eb3dd (patch)
tree261eab3c655b14594402a93dccacb489ce10f07f
parent5ec2f5e87ee5b56c1b4d78b5443558645fb2b2a1 (diff)
downloadrust-c5fdff26b58704f5b346ab2c96ea784f959eb3dd.tar.gz
rust-c5fdff26b58704f5b346ab2c96ea784f959eb3dd.zip
Add a test for overflowing endpoints
-rw-r--r--src/test/ui/lint/lint-range-endpoint-overflow.rs15
-rw-r--r--src/test/ui/lint/lint-range-endpoint-overflow.stderr32
2 files changed, 47 insertions, 0 deletions
diff --git a/src/test/ui/lint/lint-range-endpoint-overflow.rs b/src/test/ui/lint/lint-range-endpoint-overflow.rs
new file mode 100644
index 00000000000..36fcbd36c6a
--- /dev/null
+++ b/src/test/ui/lint/lint-range-endpoint-overflow.rs
@@ -0,0 +1,15 @@
+#![deny(overflowing_literals)]
+
+fn main() {
+    let range_a = 0..256; //~ ERROR range endpoint is out of range for u8
+    let range_b = 0..=255; // ok
+    let range_c = 0..=256; //~ ERROR literal out of range for u8
+    let range_d = 256..5; //~ ERROR literal out of range for u8
+    let range_e = 0..257; //~ ERROR literal out of range for u8
+
+    range_a.collect::<Vec<u8>>();
+    range_b.collect::<Vec<u8>>();
+    range_c.collect::<Vec<u8>>();
+    range_d.collect::<Vec<u8>>();
+    range_e.collect::<Vec<u8>>();
+}
diff --git a/src/test/ui/lint/lint-range-endpoint-overflow.stderr b/src/test/ui/lint/lint-range-endpoint-overflow.stderr
new file mode 100644
index 00000000000..56568765c1c
--- /dev/null
+++ b/src/test/ui/lint/lint-range-endpoint-overflow.stderr
@@ -0,0 +1,32 @@
+error: range endpoint is out of range for u8
+  --> $DIR/lint-range-endpoint-overflow.rs:4:19
+   |
+LL |     let range_a = 0..256;
+   |                   ^^^^^^ help: use an inclusive range instead: `0..=255`
+   |
+note: lint level defined here
+  --> $DIR/lint-range-endpoint-overflow.rs:1:9
+   |
+LL | #![deny(overflowing_literals)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: literal out of range for u8
+  --> $DIR/lint-range-endpoint-overflow.rs:6:23
+   |
+LL |     let range_c = 0..=256;
+   |                       ^^^
+
+error: literal out of range for u8
+  --> $DIR/lint-range-endpoint-overflow.rs:7:19
+   |
+LL |     let range_d = 256..5;
+   |                   ^^^
+
+error: literal out of range for u8
+  --> $DIR/lint-range-endpoint-overflow.rs:8:22
+   |
+LL |     let range_e = 0..257;
+   |                      ^^^
+
+error: aborting due to 4 previous errors
+