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(i128_type)]
#![cfg_attr(windows, feature(libc))]
#![feature(macro_vis_matcher)]
#![feature(never_type)]
#![feature(nonzero)]
#![feature(quote)]

View File

@ -106,12 +106,6 @@ declare_lint! {
"unknown crate type found in #[crate_type] directive"
}
declare_lint! {
pub FAT_PTR_TRANSMUTES,
Allow,
"detects transmutes of fat pointers"
}
declare_lint! {
pub TRIVIAL_CASTS,
Allow,
@ -250,7 +244,6 @@ impl LintPass for HardwiredLints {
UNUSED_FEATURES,
STABLE_FEATURES,
UNKNOWN_CRATE_TYPES,
FAT_PTR_TRANSMUTES,
TRIVIAL_CASTS,
TRIVIAL_NUMERIC_CASTS,
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`.
#[macro_export]
macro_rules! declare_lint {
(pub $name:ident, $level:ident, $desc:expr) => (
pub static $name: &'static ::rustc::lint::Lint
= &lint_initializer!($name, $level, $desc);
);
($name:ident, $level:ident, $desc:expr) => (
static $name: &'static ::rustc::lint::Lint
= &lint_initializer!($name, $level, $desc);
);
($vis: vis $NAME: ident, $Level: ident, $desc: expr) => (
$vis static $NAME: &$crate::lint::Lint = &$crate::lint::Lint {
name: stringify!($NAME),
default_level: $crate::lint::$Level,
desc: $desc
};
)
}
/// 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.
#[derive(Clone)]
pub struct DeprecatedAttr {
@ -645,7 +639,7 @@ impl DeprecatedAttr {
impl LintPass for DeprecatedAttr {
fn get_lints(&self) -> LintArray {
lint_array!(DEPRECATED_ATTR)
lint_array!()
}
}

View File

@ -28,6 +28,7 @@
#![feature(box_patterns)]
#![feature(box_syntax)]
#![feature(i128_type)]
#![feature(macro_vis_matcher)]
#![feature(quote)]
#![feature(rustc_diagnostic_macros)]
#![feature(slice_patterns)]
@ -163,7 +164,12 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
UNUSED_UNSAFE,
PATH_STATEMENTS,
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:
//
@ -239,15 +245,15 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
// Register renamed and removed lints
store.register_renamed("unknown_features", "unused_features");
store.register_removed("unsigned_negation",
"replaced by negate_unsigned feature gate");
store.register_removed("unsigned_negation", "replaced by negate_unsigned feature gate");
store.register_removed("negate_unsigned", "cast a signed value instead");
store.register_removed("raw_pointer_derive", "using derive with raw pointers is ok");
// This was renamed to raw_pointer_derive, which was then removed,
// so it is also considered removed
store.register_removed("raw_pointer_deriving",
"using derive with raw pointers is ok");
store.register_removed("raw_pointer_deriving", "using derive with raw pointers is ok");
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",
"always cast functions before transmuting them");
store.register_removed("hr_lifetime_in_assoc_type",

View File

@ -225,7 +225,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedAttributes {
}
declare_lint! {
UNUSED_PARENS,
pub(super) UNUSED_PARENS,
Warn,
"`if`, `match`, `while` and `return` do not need parentheses"
}
@ -350,7 +350,7 @@ impl EarlyLintPass for UnusedImportBraces {
}
declare_lint! {
UNUSED_ALLOCATION,
pub(super) UNUSED_ALLOCATION,
Warn,
"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,
expr.id,
expr.span,
&format!("constant evaluation error: {}. This will \
become a HARD ERROR in the future",
&format!("constant evaluation error: {}",
err.description().into_oneline()));
}
}

View File

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

View File

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

View File

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

View File

@ -82,7 +82,7 @@ const VALS_I64: (i64, i64, i64, i64) =
);
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 - 1,
//~^ ERROR constant evaluation error
@ -96,7 +96,7 @@ const VALS_U8: (u8, u8, u8, u8) =
);
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 - 1,
//~^ ERROR constant evaluation error
@ -110,7 +110,7 @@ const VALS_U16: (u16, u16, u16, u16) =
);
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 - 1,
//~^ ERROR constant evaluation error
@ -124,7 +124,7 @@ const VALS_U32: (u32, u32, u32, u32) =
);
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 - 1,
//~^ ERROR constant evaluation error

View File

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

View File

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

View File

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

View File

@ -12,6 +12,7 @@
#![feature(plugin_registrar)]
#![feature(box_syntax, rustc_private)]
#![feature(macro_vis_matcher)]
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
|
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
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
|
19 | const Y: u32 = foo(0-1);

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// 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)]
#[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
| ^^^ 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
--> $DIR/suggestions.rs:27:1
@ -25,7 +29,7 @@ warning: variable does not need to be mutable
note: lint level defined here
--> $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

View File

@ -16,6 +16,8 @@
// stripping away any starting or ending parenthesis characters—hence this
// test of the JSON error format.
#![warn(unused_parens)]
fn main() {
// We want to suggest the properly-balanced expression `1 / (2 + 3)`, not
// 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
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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`
--> $DIR/path-lookahead.rs:17:1

View File

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