Deprecate find_map lint

This commit is contained in:
Cameron Steffen 2021-01-14 16:47:22 -06:00
parent a22915bf48
commit 82bab19a01
3 changed files with 9 additions and 25 deletions

View file

@ -166,3 +166,8 @@ declare_deprecated_lint! {
pub PANIC_PARAMS, pub PANIC_PARAMS,
"this lint has been uplifted to rustc and is now called `panic_fmt`" "this lint has been uplifted to rustc and is now called `panic_fmt`"
} }
declare_deprecated_lint! {
pub FIND_MAP,
"this lint is replaced by `manual_find_map`, a more specific lint"
}

View file

@ -505,6 +505,10 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
"clippy::panic_params", "clippy::panic_params",
"this lint has been uplifted to rustc and is now called `panic_fmt`", "this lint has been uplifted to rustc and is now called `panic_fmt`",
); );
store.register_removed(
"clippy::find_map",
"this lint is replaced by `manual_find_map`, a more specific lint",
);
// end deprecated lints, do not remove this comment, its used in `update_lints` // end deprecated lints, do not remove this comment, its used in `update_lints`
// begin register lints, do not remove this comment, its used in `update_lints` // begin register lints, do not remove this comment, its used in `update_lints`
@ -732,7 +736,6 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
&methods::FILTER_MAP, &methods::FILTER_MAP,
&methods::FILTER_MAP_NEXT, &methods::FILTER_MAP_NEXT,
&methods::FILTER_NEXT, &methods::FILTER_NEXT,
&methods::FIND_MAP,
&methods::FLAT_MAP_IDENTITY, &methods::FLAT_MAP_IDENTITY,
&methods::FROM_ITER_INSTEAD_OF_COLLECT, &methods::FROM_ITER_INSTEAD_OF_COLLECT,
&methods::GET_UNWRAP, &methods::GET_UNWRAP,
@ -1333,7 +1336,6 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
LintId::of(&matches::SINGLE_MATCH_ELSE), LintId::of(&matches::SINGLE_MATCH_ELSE),
LintId::of(&methods::FILTER_MAP), LintId::of(&methods::FILTER_MAP),
LintId::of(&methods::FILTER_MAP_NEXT), LintId::of(&methods::FILTER_MAP_NEXT),
LintId::of(&methods::FIND_MAP),
LintId::of(&methods::INEFFICIENT_TO_STRING), LintId::of(&methods::INEFFICIENT_TO_STRING),
LintId::of(&methods::MAP_FLATTEN), LintId::of(&methods::MAP_FLATTEN),
LintId::of(&methods::MAP_UNWRAP_OR), LintId::of(&methods::MAP_UNWRAP_OR),

View file

@ -547,28 +547,6 @@ declare_clippy_lint! {
"call to `flat_map` where `flatten` is sufficient" "call to `flat_map` where `flatten` is sufficient"
} }
declare_clippy_lint! {
/// **What it does:** Checks for usage of `_.find(_).map(_)`.
///
/// **Why is this bad?** Readability, this can be written more concisely as
/// `_.find_map(_)`.
///
/// **Known problems:** Often requires a condition + Option/Iterator creation
/// inside the closure.
///
/// **Example:**
/// ```rust
/// (0..3).find(|x| *x == 2).map(|x| x * 2);
/// ```
/// Can be written as
/// ```rust
/// (0..3).find_map(|x| if x == 2 { Some(x * 2) } else { None });
/// ```
pub FIND_MAP,
pedantic,
"using a combination of `find` and `map` can usually be written as a single method call"
}
declare_clippy_lint! { declare_clippy_lint! {
/// **What it does:** Checks for an iterator or string search (such as `find()`, /// **What it does:** Checks for an iterator or string search (such as `find()`,
/// `position()`, or `rposition()`) followed by a call to `is_some()`. /// `position()`, or `rposition()`) followed by a call to `is_some()`.
@ -1530,7 +1508,6 @@ impl_lint_pass!(Methods => [
MANUAL_FIND_MAP, MANUAL_FIND_MAP,
FILTER_MAP_NEXT, FILTER_MAP_NEXT,
FLAT_MAP_IDENTITY, FLAT_MAP_IDENTITY,
FIND_MAP,
MAP_FLATTEN, MAP_FLATTEN,
ITERATOR_STEP_BY_ZERO, ITERATOR_STEP_BY_ZERO,
ITER_NEXT_SLICE, ITER_NEXT_SLICE,