From 3389a688343e528c88c0b142aa152b562fdf5421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Kr=C3=BCger?= Date: Sat, 5 Jan 2019 10:19:04 +0100 Subject: [PATCH 1/2] Revert "Auto merge of #3603 - xfix:random-state-lint, r=phansch" This reverts commit 0a6593cd1b12c06d4ff2f2ad0ccf20e77f1ec5f6, reversing changes made to 5277a1fb6c1be42ec0c57a6f60d82fc18a962259. This hopefully fixes #3628 --- CHANGELOG.md | 1 - README.md | 2 +- clippy_lints/src/lib.rs | 3 -- clippy_lints/src/random_state.rs | 50 -------------------------------- clippy_lints/src/utils/paths.rs | 1 - tests/ui/random_state.rs | 19 ------------ tests/ui/random_state.stderr | 28 ------------------ 7 files changed, 1 insertion(+), 103 deletions(-) delete mode 100644 clippy_lints/src/random_state.rs delete mode 100644 tests/ui/random_state.rs delete mode 100644 tests/ui/random_state.stderr diff --git a/CHANGELOG.md b/CHANGELOG.md index b5c8feb8ac6..efa637b185c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -814,7 +814,6 @@ All notable changes to this project will be documented in this file. [`ptr_offset_with_cast`]: https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [`pub_enum_variant_names`]: https://rust-lang.github.io/rust-clippy/master/index.html#pub_enum_variant_names [`question_mark`]: https://rust-lang.github.io/rust-clippy/master/index.html#question_mark -[`random_state`]: https://rust-lang.github.io/rust-clippy/master/index.html#random_state [`range_minus_one`]: https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [`range_plus_one`]: https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [`range_step_by_zero`]: https://rust-lang.github.io/rust-clippy/master/index.html#range_step_by_zero diff --git a/README.md b/README.md index 8ca10da416d..be54424dc38 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A collection of lints to catch common mistakes and improve your [Rust](https://github.com/rust-lang/rust) code. -[There are 291 lints included in this crate!](https://rust-lang.github.io/rust-clippy/master/index.html) +[There are 290 lints included in this crate!](https://rust-lang.github.io/rust-clippy/master/index.html) We have a bunch of lint categories to allow you to choose how much Clippy is supposed to ~~annoy~~ help you: diff --git a/clippy_lints/src/lib.rs b/clippy_lints/src/lib.rs index 31cd58d2c78..2e515cc8aea 100644 --- a/clippy_lints/src/lib.rs +++ b/clippy_lints/src/lib.rs @@ -180,7 +180,6 @@ pub mod precedence; pub mod ptr; pub mod ptr_offset_with_cast; pub mod question_mark; -pub mod random_state; pub mod ranges; pub mod redundant_clone; pub mod redundant_field_names; @@ -487,7 +486,6 @@ pub fn register_plugins(reg: &mut rustc_plugin::Registry<'_>, conf: &Conf) { reg.register_late_lint_pass(box ptr_offset_with_cast::Pass); reg.register_late_lint_pass(box redundant_clone::RedundantClone); reg.register_late_lint_pass(box slow_vector_initialization::Pass); - reg.register_late_lint_pass(box random_state::Pass); reg.register_lint_group("clippy::restriction", Some("clippy_restriction"), vec![ arithmetic::FLOAT_ARITHMETIC, @@ -1027,7 +1025,6 @@ pub fn register_plugins(reg: &mut rustc_plugin::Registry<'_>, conf: &Conf) { fallible_impl_from::FALLIBLE_IMPL_FROM, mutex_atomic::MUTEX_INTEGER, needless_borrow::NEEDLESS_BORROW, - random_state::RANDOM_STATE, redundant_clone::REDUNDANT_CLONE, unwrap::PANICKING_UNWRAP, unwrap::UNNECESSARY_UNWRAP, diff --git a/clippy_lints/src/random_state.rs b/clippy_lints/src/random_state.rs deleted file mode 100644 index f95116c04b6..00000000000 --- a/clippy_lints/src/random_state.rs +++ /dev/null @@ -1,50 +0,0 @@ -use crate::utils::{match_type, paths, span_lint}; -use rustc::hir::Ty; -use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass}; -use rustc::ty::subst::UnpackedKind; -use rustc::ty::TyKind; -use rustc::{declare_tool_lint, lint_array}; - -/// **What it does:** Checks for usage of `RandomState` -/// -/// **Why is this bad?** Some applications don't need collision prevention -/// which lowers the performance. -/// -/// **Known problems:** None. -/// -/// **Example:** -/// ```rust -/// fn x() { -/// let mut map = std::collections::HashMap::new(); -/// map.insert(3, 4); -/// } -/// ``` -declare_clippy_lint! { - pub RANDOM_STATE, - nursery, - "use of RandomState" -} - -pub struct Pass; - -impl LintPass for Pass { - fn get_lints(&self) -> LintArray { - lint_array!(RANDOM_STATE) - } -} - -impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Pass { - fn check_ty(&mut self, cx: &LateContext<'a, 'tcx>, ty: &Ty) { - if let Some(tys) = cx.tables.node_id_to_type_opt(ty.hir_id) { - if let TyKind::Adt(_, substs) = tys.sty { - for subst in substs { - if let UnpackedKind::Type(build_hasher) = subst.unpack() { - if match_type(cx, build_hasher, &paths::RANDOM_STATE) { - span_lint(cx, RANDOM_STATE, ty.span, "usage of RandomState"); - } - } - } - } - } - } -} diff --git a/clippy_lints/src/utils/paths.rs b/clippy_lints/src/utils/paths.rs index 0ec684e36bc..0779d77936f 100644 --- a/clippy_lints/src/utils/paths.rs +++ b/clippy_lints/src/utils/paths.rs @@ -73,7 +73,6 @@ pub const PATH_BUF: [&str; 3] = ["std", "path", "PathBuf"]; pub const PATH_TO_PATH_BUF: [&str; 4] = ["std", "path", "Path", "to_path_buf"]; pub const PTR_NULL: [&str; 2] = ["ptr", "null"]; pub const PTR_NULL_MUT: [&str; 2] = ["ptr", "null_mut"]; -pub const RANDOM_STATE: [&str; 5] = ["std", "collections", "hash", "map", "RandomState"]; pub const RANGE: [&str; 3] = ["core", "ops", "Range"]; pub const RANGE_ARGUMENT_TRAIT: [&str; 3] = ["core", "ops", "RangeBounds"]; pub const RANGE_FROM: [&str; 3] = ["core", "ops", "RangeFrom"]; diff --git a/tests/ui/random_state.rs b/tests/ui/random_state.rs deleted file mode 100644 index f4fa85997a8..00000000000 --- a/tests/ui/random_state.rs +++ /dev/null @@ -1,19 +0,0 @@ -#![warn(clippy::random_state)] - -use std::collections::hash_map::RandomState; -use std::collections::hash_map::{DefaultHasher, HashMap}; -use std::hash::BuildHasherDefault; - -fn main() { - // Should warn - let mut map = HashMap::new(); - map.insert(3, 4); - let mut map = HashMap::with_hasher(RandomState::new()); - map.insert(true, false); - let _map: HashMap<_, _> = vec![(2, 3)].into_iter().collect(); - let _vec: Vec>; - // Shouldn't warn - let _map: HashMap> = HashMap::default(); - let mut map = HashMap::with_hasher(BuildHasherDefault::::default()); - map.insert("a", "b"); -} diff --git a/tests/ui/random_state.stderr b/tests/ui/random_state.stderr deleted file mode 100644 index df224bf0c29..00000000000 --- a/tests/ui/random_state.stderr +++ /dev/null @@ -1,28 +0,0 @@ -error: usage of RandomState - --> $DIR/random_state.rs:9:19 - | -LL | let mut map = HashMap::new(); - | ^^^^^^^^^^^^ - | - = note: `-D clippy::random-state` implied by `-D warnings` - -error: usage of RandomState - --> $DIR/random_state.rs:11:19 - | -LL | let mut map = HashMap::with_hasher(RandomState::new()); - | ^^^^^^^^^^^^^^^^^^^^ - -error: usage of RandomState - --> $DIR/random_state.rs:13:15 - | -LL | let _map: HashMap<_, _> = vec![(2, 3)].into_iter().collect(); - | ^^^^^^^^^^^^^ - -error: usage of RandomState - --> $DIR/random_state.rs:14:19 - | -LL | let _vec: Vec>; - | ^^^^^^^^^^^^^^^^^ - -error: aborting due to 4 previous errors - From 8ff4a1f0a82be971ecadfdba0066fd448db2a8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Kr=C3=BCger?= Date: Sat, 5 Jan 2019 10:20:37 +0100 Subject: [PATCH 2/2] Revert "tests: used_underscore_binding_macro: disable random_state lint." This reverts commit 2b80829fe0311fc5cdbc731fa0b67f103db4c004. --- tests/run-pass/used_underscore_binding_macro.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/run-pass/used_underscore_binding_macro.rs b/tests/run-pass/used_underscore_binding_macro.rs index e3af880524c..8b6c6557b49 100644 --- a/tests/run-pass/used_underscore_binding_macro.rs +++ b/tests/run-pass/used_underscore_binding_macro.rs @@ -8,7 +8,6 @@ // except according to those terms. #![allow(clippy::useless_attribute)] //issue #2910 -#![allow(clippy::random_state)] // issue #3628 #[macro_use] extern crate serde_derive;