about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-09-24 10:08:01 +0000
committerbors <bors@rust-lang.org>2018-09-24 10:08:01 +0000
commite5c6575801028f5e089ef2e7720aa1af9d452334 (patch)
treeef88220171a4af19391bc37b5b69e462f9c31285
parent5ad5aca714a29931903b8e22851dfd9db2bedba7 (diff)
parent6523eabf6e013f2889ed8af60ab6019690f6b00b (diff)
downloadrust-e5c6575801028f5e089ef2e7720aa1af9d452334.tar.gz
rust-e5c6575801028f5e089ef2e7720aa1af9d452334.zip
Auto merge of #54507 - csmoe:deny_overflow, r=varkor
Deny the `overflowing_literals` lint for the 2018 edition

Closes https://github.com/rust-lang/rust/issues/54502
r? @varkor
-rw-r--r--src/librustc_lint/types.rs4
-rw-r--r--src/test/ui/editions/edition-deny-overflowing-literals-2018.rs16
-rw-r--r--src/test/ui/editions/edition-deny-overflowing-literals-2018.stderr10
3 files changed, 29 insertions, 1 deletions
diff --git a/src/librustc_lint/types.rs b/src/librustc_lint/types.rs
index 2bec9203e9e..01d4d0f8cdb 100644
--- a/src/librustc_lint/types.rs
+++ b/src/librustc_lint/types.rs
@@ -24,6 +24,7 @@ use std::{i8, i16, i32, i64, u8, u16, u32, u64, f32, f64};
 use syntax::{ast, attr};
 use syntax::errors::Applicability;
 use rustc_target::spec::abi::Abi;
+use syntax::edition::Edition;
 use syntax_pos::Span;
 use syntax::source_map;
 
@@ -38,7 +39,8 @@ declare_lint! {
 declare_lint! {
     OVERFLOWING_LITERALS,
     Warn,
-    "literal out of range for its type"
+    "literal out of range for its type",
+    Edition::Edition2018 => Deny
 }
 
 declare_lint! {
diff --git a/src/test/ui/editions/edition-deny-overflowing-literals-2018.rs b/src/test/ui/editions/edition-deny-overflowing-literals-2018.rs
new file mode 100644
index 00000000000..48dfd24d50d
--- /dev/null
+++ b/src/test/ui/editions/edition-deny-overflowing-literals-2018.rs
@@ -0,0 +1,16 @@
+// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// edition:2018
+
+fn main() {
+    let x: u8 = 256;
+    //~^ error: literal out of range for u8
+}
diff --git a/src/test/ui/editions/edition-deny-overflowing-literals-2018.stderr b/src/test/ui/editions/edition-deny-overflowing-literals-2018.stderr
new file mode 100644
index 00000000000..97f547abfa7
--- /dev/null
+++ b/src/test/ui/editions/edition-deny-overflowing-literals-2018.stderr
@@ -0,0 +1,10 @@
+error: literal out of range for u8
+  --> $DIR/edition-deny-overflowing-literals-2018.rs:14:17
+   |
+LL |     let x: u8 = 256;
+   |                 ^^^
+   |
+   = note: #[deny(overflowing_literals)] on by default
+
+error: aborting due to previous error
+