@@ -5,6 +5,7 @@ mod expect_used;
5
5
mod filetype_is_file;
6
6
mod filter_flat_map;
7
7
mod filter_map;
8
+ mod filter_map_flat_map;
8
9
mod filter_map_identity;
9
10
mod filter_map_map;
10
11
mod filter_map_next;
@@ -1707,7 +1708,7 @@ impl<'tcx> LateLintPass<'tcx> for Methods {
1707
1708
[ "next" , "filter_map" ] => filter_map_next:: check ( cx, expr, arg_lists[ 1 ] , self . msrv . as_ref ( ) ) ,
1708
1709
[ "map" , "find" ] => filter_map:: check ( cx, expr, true ) ,
1709
1710
[ "flat_map" , "filter" ] => filter_flat_map:: check ( cx, expr, arg_lists[ 1 ] , arg_lists[ 0 ] ) ,
1710
- [ "flat_map" , "filter_map" ] => lint_filter_map_flat_map ( cx, expr, arg_lists[ 1 ] , arg_lists[ 0 ] ) ,
1711
+ [ "flat_map" , "filter_map" ] => filter_map_flat_map :: check ( cx, expr, arg_lists[ 1 ] , arg_lists[ 0 ] ) ,
1711
1712
[ "flat_map" , ..] => lint_flat_map_identity ( cx, expr, arg_lists[ 0 ] , method_spans[ 0 ] ) ,
1712
1713
[ "flatten" , "map" ] => lint_map_flatten ( cx, expr, arg_lists[ 1 ] ) ,
1713
1714
[ "is_some" , "find" ] => lint_search_is_some ( cx, expr, "find" , arg_lists[ 1 ] , arg_lists[ 0 ] , method_spans[ 1 ] ) ,
@@ -2754,22 +2755,6 @@ fn lint_map_or_none<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>, map
2754
2755
) ;
2755
2756
}
2756
2757
2757
- /// lint use of `filter_map().flat_map()` for `Iterators`
2758
- fn lint_filter_map_flat_map < ' tcx > (
2759
- cx : & LateContext < ' tcx > ,
2760
- expr : & ' tcx hir:: Expr < ' _ > ,
2761
- _filter_args : & ' tcx [ hir:: Expr < ' _ > ] ,
2762
- _map_args : & ' tcx [ hir:: Expr < ' _ > ] ,
2763
- ) {
2764
- // lint if caller of `.filter_map().flat_map()` is an Iterator
2765
- if match_trait_method ( cx, expr, & paths:: ITERATOR ) {
2766
- let msg = "called `filter_map(..).flat_map(..)` on an `Iterator`" ;
2767
- let hint = "this is more succinctly expressed by calling `.flat_map(..)` \
2768
- and filtering by returning `iter::empty()`";
2769
- span_lint_and_help ( cx, FILTER_MAP , expr. span , msg, None , hint) ;
2770
- }
2771
- }
2772
-
2773
2758
/// lint use of `flat_map` for `Iterators` where `flatten` would be sufficient
2774
2759
fn lint_flat_map_identity < ' tcx > (
2775
2760
cx : & LateContext < ' tcx > ,
0 commit comments