about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-08-08 16:33:41 +0200
committerGitHub <noreply@github.com>2019-08-08 16:33:41 +0200
commit499887ffb9cb500c00c7e191d7e6ca67e1e6498f (patch)
treec5828371b6515b7a1820137be03a3cd873bf38a8
parent1514bc1c6853f61da5c718d523e0faf931e4e737 (diff)
parente2b3543eabafb7ca143445b02c36ff7e412445b1 (diff)
downloadrust-499887ffb9cb500c00c7e191d7e6ca67e1e6498f.tar.gz
rust-499887ffb9cb500c00c7e191d7e6ca67e1e6498f.zip
Rollup merge of #63370 - JohnTitor:fix-ice-63364, r=varkor
Fix ICE #63364

Fixes #63364

r? @estebank cc @varkor
-rw-r--r--src/librustc_lint/types.rs4
-rw-r--r--src/test/ui/issues/issue-63364.rs10
-rw-r--r--src/test/ui/issues/issue-63364.stderr10
3 files changed, 23 insertions, 1 deletions
diff --git a/src/librustc_lint/types.rs b/src/librustc_lint/types.rs
index fdfc6f68590..e86230437f2 100644
--- a/src/librustc_lint/types.rs
+++ b/src/librustc_lint/types.rs
@@ -73,7 +73,9 @@ fn lint_overflowing_range_endpoint<'a, 'tcx>(
     // We only want to handle exclusive (`..`) ranges,
     // which are represented as `ExprKind::Struct`.
     if let ExprKind::Struct(_, eps, _) = &parent_expr.node {
-        debug_assert_eq!(eps.len(), 2);
+        if eps.len() != 2 {
+            return false;
+        }
         // We can suggest using an inclusive range
         // (`..=`) instead only if it is the `end` that is
         // overflowing and only by 1.
diff --git a/src/test/ui/issues/issue-63364.rs b/src/test/ui/issues/issue-63364.rs
new file mode 100644
index 00000000000..5223267a69a
--- /dev/null
+++ b/src/test/ui/issues/issue-63364.rs
@@ -0,0 +1,10 @@
+fn part(_: u16) -> u32 {
+    1
+}
+
+fn main() {
+    for n in 100_000.. {
+    //~^ ERROR: literal out of range for `u16`
+        let _ = part(n);
+    }
+}
diff --git a/src/test/ui/issues/issue-63364.stderr b/src/test/ui/issues/issue-63364.stderr
new file mode 100644
index 00000000000..60ff318f35a
--- /dev/null
+++ b/src/test/ui/issues/issue-63364.stderr
@@ -0,0 +1,10 @@
+error: literal out of range for `u16`
+  --> $DIR/issue-63364.rs:6:14
+   |
+LL |     for n in 100_000.. {
+   |              ^^^^^^^
+   |
+   = note: `#[deny(overflowing_literals)]` on by default
+
+error: aborting due to previous error
+