From d129d049c6ef259630c862eb0ecd322452814d1b Mon Sep 17 00:00:00 2001 From: Dylan Maccora Date: Sun, 7 Oct 2018 11:24:09 +1100 Subject: [PATCH] Adding more detail to filter_map lint documentation. --- clippy_lints/src/methods/mod.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/clippy_lints/src/methods/mod.rs b/clippy_lints/src/methods/mod.rs index 30c82e3969f..d49a05f5186 100644 --- a/clippy_lints/src/methods/mod.rs +++ b/clippy_lints/src/methods/mod.rs @@ -706,8 +706,11 @@ /// **What it does:** Checks for `filter_map` calls which could be replaced by `filter` or `map`. +/// More specifically it checks if the closure provided is only performing one of the +/// filter or map operations and suggests the appropriate option. /// -/// **Why is this bad?** Complexity +/// **Why is this bad?** Complexity. The intent is also clearer if only a single +/// operation is being performed. /// /// **Known problems:** None /// @@ -715,10 +718,18 @@ /// ```rust /// let _ = (0..3).filter_map(|x| if x > 2 { Some(x) } else { None }); /// ``` -/// This could be written as: +/// As there is no transformation of the argument this could be written as: /// ```rust /// let _ = (0..3).filter(|&x| x > 2); /// ``` +/// +/// ```rust +/// let _ = (0..4).filter_map(i32::checked_abs); +/// ``` +/// As there is no conditional check on the argument this could be written as: +/// ```rust +/// let _ = (0..4).map(i32::checked_abs); +/// ``` declare_clippy_lint! { pub UNNECESSARY_FILTER_MAP, complexity, -- 2.44.0