1 use clippy_utils::diagnostics::span_lint_and_sugg;
2 use clippy_utils::{is_expr_identity_function, is_trait_method};
3 use rustc_errors::Applicability;
5 use rustc_lint::LateContext;
6 use rustc_span::{source_map::Span, sym};
8 use super::FILTER_MAP_IDENTITY;
10 pub(super) fn check(cx: &LateContext<'_>, expr: &hir::Expr<'_>, filter_map_arg: &hir::Expr<'_>, filter_map_span: Span) {
11 if is_trait_method(cx, expr, sym::Iterator) && is_expr_identity_function(cx, filter_map_arg) {
15 filter_map_span.with_hi(expr.span.hi()),
16 "use of `filter_map` with an identity function",
18 "flatten()".to_string(),
19 Applicability::MachineApplicable,