Auto merge of #45424 - petrochenkov:grlint, r=oli-obk

Add several lints into `unused` lint group

Also a couple of obsolete (not reported) lints are removed.

r? @oli-obk
This commit is contained in:
bors 2017-10-29 23:59:07 +00:00
commit dae6868637
22 changed files with 53 additions and 55 deletions

View File

@ -47,6 +47,7 @@
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(i128_type)] #![feature(i128_type)]
#![cfg_attr(windows, feature(libc))] #![cfg_attr(windows, feature(libc))]
#![feature(macro_vis_matcher)]
#![feature(never_type)] #![feature(never_type)]
#![feature(nonzero)] #![feature(nonzero)]
#![feature(quote)] #![feature(quote)]

View File

@ -106,12 +106,6 @@ declare_lint! {
"unknown crate type found in #[crate_type] directive" "unknown crate type found in #[crate_type] directive"
} }
declare_lint! {
pub FAT_PTR_TRANSMUTES,
Allow,
"detects transmutes of fat pointers"
}
declare_lint! { declare_lint! {
pub TRIVIAL_CASTS, pub TRIVIAL_CASTS,
Allow, Allow,
@ -250,7 +244,6 @@ impl LintPass for HardwiredLints {
UNUSED_FEATURES, UNUSED_FEATURES,
STABLE_FEATURES, STABLE_FEATURES,
UNKNOWN_CRATE_TYPES, UNKNOWN_CRATE_TYPES,
FAT_PTR_TRANSMUTES,
TRIVIAL_CASTS, TRIVIAL_CASTS,
TRIVIAL_NUMERIC_CASTS, TRIVIAL_NUMERIC_CASTS,
PRIVATE_IN_PUBLIC, PRIVATE_IN_PUBLIC,

View File

@ -84,29 +84,16 @@ impl Lint {
} }
} }
/// Build a `Lint` initializer.
#[macro_export]
macro_rules! lint_initializer {
($name:ident, $level:ident, $desc:expr) => (
::rustc::lint::Lint {
name: stringify!($name),
default_level: ::rustc::lint::$level,
desc: $desc,
}
)
}
/// Declare a static item of type `&'static Lint`. /// Declare a static item of type `&'static Lint`.
#[macro_export] #[macro_export]
macro_rules! declare_lint { macro_rules! declare_lint {
(pub $name:ident, $level:ident, $desc:expr) => ( ($vis: vis $NAME: ident, $Level: ident, $desc: expr) => (
pub static $name: &'static ::rustc::lint::Lint $vis static $NAME: &$crate::lint::Lint = &$crate::lint::Lint {
= &lint_initializer!($name, $level, $desc); name: stringify!($NAME),
); default_level: $crate::lint::$Level,
($name:ident, $level:ident, $desc:expr) => ( desc: $desc
static $name: &'static ::rustc::lint::Lint };
= &lint_initializer!($name, $level, $desc); )
);
} }
/// Declare a static `LintArray` and return it as an expression. /// Declare a static `LintArray` and return it as an expression.

View File

@ -621,12 +621,6 @@ impl EarlyLintPass for AnonymousParameters {
} }
} }
declare_lint! {
DEPRECATED_ATTR,
Warn,
"detects use of deprecated attributes"
}
/// Checks for use of attributes which have been deprecated. /// Checks for use of attributes which have been deprecated.
#[derive(Clone)] #[derive(Clone)]
pub struct DeprecatedAttr { pub struct DeprecatedAttr {
@ -645,7 +639,7 @@ impl DeprecatedAttr {
impl LintPass for DeprecatedAttr { impl LintPass for DeprecatedAttr {
fn get_lints(&self) -> LintArray { fn get_lints(&self) -> LintArray {
lint_array!(DEPRECATED_ATTR) lint_array!()
} }
} }

View File

@ -28,6 +28,7 @@
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(i128_type)] #![feature(i128_type)]
#![feature(macro_vis_matcher)]
#![feature(quote)] #![feature(quote)]
#![feature(rustc_diagnostic_macros)] #![feature(rustc_diagnostic_macros)]
#![feature(slice_patterns)] #![feature(slice_patterns)]
@ -163,7 +164,12 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
UNUSED_UNSAFE, UNUSED_UNSAFE,
PATH_STATEMENTS, PATH_STATEMENTS,
UNUSED_ATTRIBUTES, UNUSED_ATTRIBUTES,
UNUSED_MACROS); UNUSED_MACROS,
UNUSED_ALLOCATION,
UNUSED_DOC_COMMENT,
UNUSED_EXTERN_CRATES,
UNUSED_FEATURES,
UNUSED_PARENS);
// Guidelines for creating a future incompatibility lint: // Guidelines for creating a future incompatibility lint:
// //
@ -239,15 +245,15 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
// Register renamed and removed lints // Register renamed and removed lints
store.register_renamed("unknown_features", "unused_features"); store.register_renamed("unknown_features", "unused_features");
store.register_removed("unsigned_negation", store.register_removed("unsigned_negation", "replaced by negate_unsigned feature gate");
"replaced by negate_unsigned feature gate");
store.register_removed("negate_unsigned", "cast a signed value instead"); store.register_removed("negate_unsigned", "cast a signed value instead");
store.register_removed("raw_pointer_derive", "using derive with raw pointers is ok"); store.register_removed("raw_pointer_derive", "using derive with raw pointers is ok");
// This was renamed to raw_pointer_derive, which was then removed, // This was renamed to raw_pointer_derive, which was then removed,
// so it is also considered removed // so it is also considered removed
store.register_removed("raw_pointer_deriving", store.register_removed("raw_pointer_deriving", "using derive with raw pointers is ok");
"using derive with raw pointers is ok");
store.register_removed("drop_with_repr_extern", "drop flags have been removed"); store.register_removed("drop_with_repr_extern", "drop flags have been removed");
store.register_removed("fat_ptr_transmutes", "was accidentally removed back in 2014");
store.register_removed("deprecated_attr", "use `deprecated` instead");
store.register_removed("transmute_from_fn_item_types", store.register_removed("transmute_from_fn_item_types",
"always cast functions before transmuting them"); "always cast functions before transmuting them");
store.register_removed("hr_lifetime_in_assoc_type", store.register_removed("hr_lifetime_in_assoc_type",

View File

@ -225,7 +225,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedAttributes {
} }
declare_lint! { declare_lint! {
UNUSED_PARENS, pub(super) UNUSED_PARENS,
Warn, Warn,
"`if`, `match`, `while` and `return` do not need parentheses" "`if`, `match`, `while` and `return` do not need parentheses"
} }
@ -350,7 +350,7 @@ impl EarlyLintPass for UnusedImportBraces {
} }
declare_lint! { declare_lint! {
UNUSED_ALLOCATION, pub(super) UNUSED_ALLOCATION,
Warn, Warn,
"detects unnecessary allocations that can be eliminated" "detects unnecessary allocations that can be eliminated"
} }

View File

@ -140,8 +140,7 @@ impl<'a, 'gcx> CheckCrateVisitor<'a, 'gcx> {
self.tcx.lint_node(CONST_ERR, self.tcx.lint_node(CONST_ERR,
expr.id, expr.id,
expr.span, expr.span,
&format!("constant evaluation error: {}. This will \ &format!("constant evaluation error: {}",
become a HARD ERROR in the future",
err.description().into_oneline())); err.description().into_oneline()));
} }
} }

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar, rustc_private)] #![feature(plugin_registrar, rustc_private)]
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(macro_vis_matcher)]
#[macro_use] extern crate rustc; #[macro_use] extern crate rustc;
extern crate rustc_plugin; extern crate rustc_plugin;

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar)] #![feature(plugin_registrar)]
#![feature(box_syntax, rustc_private)] #![feature(box_syntax, rustc_private)]
#![feature(macro_vis_matcher)]
// Load rustc as a plugin to get macros // Load rustc as a plugin to get macros
#[macro_use] #[macro_use]

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar)] #![feature(plugin_registrar)]
#![feature(box_syntax, rustc_private)] #![feature(box_syntax, rustc_private)]
#![feature(macro_vis_matcher)]
extern crate syntax; extern crate syntax;

View File

@ -82,7 +82,7 @@ const VALS_I64: (i64, i64, i64, i64) =
); );
const VALS_U8: (u8, u8, u8, u8) = const VALS_U8: (u8, u8, u8, u8) =
( //~ WARN constant evaluation error: attempt to subtract with overflow. ( //~ WARN constant evaluation error: attempt to subtract with overflow
-(u8::MIN as i8) as u8, -(u8::MIN as i8) as u8,
u8::MIN - 1, u8::MIN - 1,
//~^ ERROR constant evaluation error //~^ ERROR constant evaluation error
@ -96,7 +96,7 @@ const VALS_U8: (u8, u8, u8, u8) =
); );
const VALS_U16: (u16, u16, u16, u16) = const VALS_U16: (u16, u16, u16, u16) =
( //~ WARN constant evaluation error: attempt to subtract with overflow. ( //~ WARN constant evaluation error: attempt to subtract with overflow
-(u16::MIN as i16) as u16, -(u16::MIN as i16) as u16,
u16::MIN - 1, u16::MIN - 1,
//~^ ERROR constant evaluation error //~^ ERROR constant evaluation error
@ -110,7 +110,7 @@ const VALS_U16: (u16, u16, u16, u16) =
); );
const VALS_U32: (u32, u32, u32, u32) = const VALS_U32: (u32, u32, u32, u32) =
( //~ WARN constant evaluation error: attempt to subtract with overflow. ( //~ WARN constant evaluation error: attempt to subtract with overflow
-(u32::MIN as i32) as u32, -(u32::MIN as i32) as u32,
u32::MIN - 1, u32::MIN - 1,
//~^ ERROR constant evaluation error //~^ ERROR constant evaluation error
@ -124,7 +124,7 @@ const VALS_U32: (u32, u32, u32, u32) =
); );
const VALS_U64: (u64, u64, u64, u64) = const VALS_U64: (u64, u64, u64, u64) =
( //~ WARN constant evaluation error: attempt to subtract with overflow. ( //~ WARN constant evaluation error: attempt to subtract with overflow
-(u64::MIN as i64) as u64, -(u64::MIN as i64) as u64,
u64::MIN - 1, u64::MIN - 1,
//~^ ERROR constant evaluation error //~^ ERROR constant evaluation error

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar, rustc_private)] #![feature(plugin_registrar, rustc_private)]
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(macro_vis_matcher)]
#[macro_use] extern crate rustc; #[macro_use] extern crate rustc;
extern crate rustc_plugin; extern crate rustc_plugin;

View File

@ -8,6 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
#![feature(box_syntax, plugin, plugin_registrar, rustc_private)] #![feature(box_syntax, plugin, plugin_registrar, rustc_private)]
#![feature(macro_vis_matcher)]
#![crate_type = "dylib"] #![crate_type = "dylib"]
#[macro_use] #[macro_use]

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar)] #![feature(plugin_registrar)]
#![feature(box_syntax, rustc_private)] #![feature(box_syntax, rustc_private)]
#![feature(macro_vis_matcher)]
// Load rustc as a plugin to get macros // Load rustc as a plugin to get macros
#[macro_use] #[macro_use]

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar)] #![feature(plugin_registrar)]
#![feature(box_syntax, rustc_private)] #![feature(box_syntax, rustc_private)]
#![feature(macro_vis_matcher)]
extern crate syntax; extern crate syntax;

View File

@ -1,4 +1,4 @@
warning: constant evaluation error: attempt to subtract with overflow. This will become a HARD ERROR in the future warning: constant evaluation error: attempt to subtract with overflow
--> $DIR/issue-43197.rs:18:20 --> $DIR/issue-43197.rs:18:20
| |
18 | const X: u32 = 0-1; 18 | const X: u32 = 0-1;
@ -6,7 +6,7 @@ warning: constant evaluation error: attempt to subtract with overflow. This will
| |
= note: #[warn(const_err)] on by default = note: #[warn(const_err)] on by default
warning: constant evaluation error: attempt to subtract with overflow. This will become a HARD ERROR in the future warning: constant evaluation error: attempt to subtract with overflow
--> $DIR/issue-43197.rs:19:20 --> $DIR/issue-43197.rs:19:20
| |
19 | const Y: u32 = foo(0-1); 19 | const Y: u32 = foo(0-1);

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
#![warn(unused_mut)] // UI tests pass `-A unused`—see Issue #43896 #![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issue #43896
#![feature(no_debug)] #![feature(no_debug)]
#[no_mangle] static SHENZHOU: usize = 1; // should suggest `pub` #[no_mangle] static SHENZHOU: usize = 1; // should suggest `pub`

View File

@ -4,7 +4,11 @@ warning: unnecessary parentheses around assigned value
30 | let mut a = (1); // should suggest no `mut`, no parens 30 | let mut a = (1); // should suggest no `mut`, no parens
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
| |
= note: #[warn(unused_parens)] on by default note: lint level defined here
--> $DIR/suggestions.rs:11:21
|
11 | #![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issue #43896
| ^^^^^^^^^^^^^
warning: use of deprecated attribute `no_debug`: the `#[no_debug]` attribute was an experimental feature that has been deprecated due to lack of demand. See https://github.com/rust-lang/rust/issues/29721 warning: use of deprecated attribute `no_debug`: the `#[no_debug]` attribute was an experimental feature that has been deprecated due to lack of demand. See https://github.com/rust-lang/rust/issues/29721
--> $DIR/suggestions.rs:27:1 --> $DIR/suggestions.rs:27:1
@ -25,7 +29,7 @@ warning: variable does not need to be mutable
note: lint level defined here note: lint level defined here
--> $DIR/suggestions.rs:11:9 --> $DIR/suggestions.rs:11:9
| |
11 | #![warn(unused_mut)] // UI tests pass `-A unused`—see Issue #43896 11 | #![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issue #43896
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: static is marked #[no_mangle], but not exported warning: static is marked #[no_mangle], but not exported

View File

@ -16,6 +16,8 @@
// stripping away any starting or ending parenthesis characters—hence this // stripping away any starting or ending parenthesis characters—hence this
// test of the JSON error format. // test of the JSON error format.
#![warn(unused_parens)]
fn main() { fn main() {
// We want to suggest the properly-balanced expression `1 / (2 + 3)`, not // We want to suggest the properly-balanced expression `1 / (2 + 3)`, not
// the malformed `1 / (2 + 3` // the malformed `1 / (2 + 3`

View File

@ -1 +1 @@
{"message":"unnecessary parentheses around assigned value","code":null,"level":"warning","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":976,"byte_end":989,"line_start":22,"line_end":22,"column_start":14,"column_end":27,"is_primary":true,"text":[{"text":" let _a = (1 / (2 + 3));","highlight_start":14,"highlight_end":27}],"label":null,"suggested_replacement":null,"expansion":null}],"children":[{"message":"#[warn(unused_parens)] on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove these parentheses","code":null,"level":"help","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":976,"byte_end":989,"line_start":22,"line_end":22,"column_start":14,"column_end":27,"is_primary":true,"text":[{"text":" let _a = (1 / (2 + 3));","highlight_start":14,"highlight_end":27}],"label":null,"suggested_replacement":"1 / (2 + 3)","expansion":null}],"children":[],"rendered":null}],"rendered":null} {"message":"unnecessary parentheses around assigned value","code":null,"level":"warning","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":1001,"byte_end":1014,"line_start":24,"line_end":24,"column_start":14,"column_end":27,"is_primary":true,"text":[{"text":" let _a = (1 / (2 + 3));","highlight_start":14,"highlight_end":27}],"label":null,"suggested_replacement":null,"expansion":null}],"children":[{"message":"lint level defined here","code":null,"level":"note","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":847,"byte_end":860,"line_start":19,"line_end":19,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":"#![warn(unused_parens)]","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":null,"expansion":null}],"children":[],"rendered":null},{"message":"remove these parentheses","code":null,"level":"help","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":1001,"byte_end":1014,"line_start":24,"line_end":24,"column_start":14,"column_end":27,"is_primary":true,"text":[{"text":" let _a = (1 / (2 + 3));","highlight_start":14,"highlight_end":27}],"label":null,"suggested_replacement":"1 / (2 + 3)","expansion":null}],"children":[],"rendered":null}],"rendered":null}

View File

@ -4,7 +4,12 @@ warning: unnecessary parentheses around `return` value
18 | return (<T as ToString>::to_string(&arg)); //~WARN unnecessary parentheses around `return` value 18 | return (<T as ToString>::to_string(&arg)); //~WARN unnecessary parentheses around `return` value
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
| |
= note: #[warn(unused_parens)] on by default note: lint level defined here
--> $DIR/path-lookahead.rs:13:9
|
13 | #![warn(unused)]
| ^^^^^^
= note: #[warn(unused_parens)] implied by #[warn(unused)]
warning: function is never used: `with_parens` warning: function is never used: `with_parens`
--> $DIR/path-lookahead.rs:17:1 --> $DIR/path-lookahead.rs:17:1

View File

@ -26,7 +26,7 @@
miri = "Broken" miri = "Broken"
# ping @Manishearth @llogiq @mcarton @oli-obk # ping @Manishearth @llogiq @mcarton @oli-obk
clippy = "Compiling" clippy = "Broken"
# ping @nrc # ping @nrc
rls = "Testing" rls = "Testing"