fix(manual_find_map and manual_filter_map): check clone method

This commit is contained in:
kyoto7250 2022-06-02 00:57:08 +09:00
parent 39231b4b50
commit 007fae10ed
7 changed files with 122 additions and 3 deletions

View file

@ -155,7 +155,15 @@ pub(super) fn check<'tcx>(
}
false
};
if SpanlessEq::new(cx).expr_fallback(eq_fallback).eq_expr(filter_arg, map_arg);
if match map_arg.kind {
ExprKind::MethodCall(clone, [original_arg], _) => {
clone.ident.name == sym::clone
&& SpanlessEq::new(cx).expr_fallback(eq_fallback).eq_expr(filter_arg, original_arg)
},
_ => SpanlessEq::new(cx).expr_fallback(eq_fallback).eq_expr(filter_arg, map_arg)
};
then {
let span = filter_span.with_hi(expr.span.hi());
let (filter_name, lint) = if is_find {