@@ -2,10 +2,11 @@ use clippy_utils::diagnostics::span_lint_and_then;
2
2
use rustc_errors:: { Applicability , MultiSpan } ;
3
3
use rustc_hir:: def_id:: { DefId , DefIdSet } ;
4
4
use rustc_hir:: hir_id:: OwnerId ;
5
- use rustc_hir:: { Impl , ImplItem , ImplItemKind , ItemKind , Node , TraitRef } ;
5
+ use rustc_hir:: { ImplItem , ImplItemKind , ItemKind , Node , TraitRef } ;
6
6
use rustc_lint:: LateContext ;
7
7
use rustc_span:: Span ;
8
8
use rustc_span:: symbol:: { Ident , kw} ;
9
+ use std:: iter;
9
10
10
11
use super :: RENAMED_FUNCTION_PARAMS ;
11
12
@@ -14,12 +15,10 @@ pub(super) fn check_impl_item(cx: &LateContext<'_>, item: &ImplItem<'_>, ignored
14
15
&& let ImplItemKind :: Fn ( _, body_id) = item. kind
15
16
&& let parent_node = cx. tcx . parent_hir_node ( item. hir_id ( ) )
16
17
&& let Node :: Item ( parent_item) = parent_node
17
- && let ItemKind :: Impl ( Impl {
18
- of_trait : Some ( trait_ref) ,
19
- ..
20
- } ) = & parent_item. kind
18
+ && let ItemKind :: Impl ( impl_) = & parent_item. kind
19
+ && let Some ( trait_ref) = impl_. of_trait
21
20
&& let Some ( did) = trait_item_def_id_of_impl ( cx, item. owner_id )
22
- && !is_from_ignored_trait ( trait_ref, ignored_traits)
21
+ && !is_from_ignored_trait ( & trait_ref, ignored_traits)
23
22
{
24
23
let mut param_idents_iter = cx. tcx . hir_body_param_idents ( body_id) ;
25
24
let mut default_param_idents_iter = cx. tcx . fn_arg_idents ( did) . iter ( ) . copied ( ) ;
@@ -58,16 +57,11 @@ impl RenamedFnArgs {
58
57
let mut renamed: Vec < ( Span , String ) > = vec ! [ ] ;
59
58
60
59
debug_assert ! ( default_idents. size_hint( ) == current_idents. size_hint( ) ) ;
61
- while let ( Some ( default_ident) , Some ( current_ident) ) = ( default_idents. next ( ) , current_idents. next ( ) ) {
60
+ for ( default_ident, current_ident) in iter :: zip ( default_idents, current_idents) {
62
61
let has_name_to_check = |ident : Option < Ident > | {
63
- if let Some ( ident) = ident
64
- && ident. name != kw:: Underscore
65
- && !ident. name . as_str ( ) . starts_with ( '_' )
66
- {
67
- Some ( ident)
68
- } else {
69
- None
70
- }
62
+ ident
63
+ . filter ( |ident| ident. name != kw:: Underscore )
64
+ . filter ( |ident| !ident. name . as_str ( ) . starts_with ( '_' ) )
71
65
} ;
72
66
73
67
if let Some ( default_ident) = has_name_to_check ( default_ident)
@@ -97,8 +91,7 @@ fn trait_item_def_id_of_impl(cx: &LateContext<'_>, target: OwnerId) -> Option<De
97
91
}
98
92
99
93
fn is_from_ignored_trait ( of_trait : & TraitRef < ' _ > , ignored_traits : & DefIdSet ) -> bool {
100
- let Some ( trait_did) = of_trait. trait_def_id ( ) else {
101
- return false ;
102
- } ;
103
- ignored_traits. contains ( & trait_did)
94
+ of_trait
95
+ . trait_def_id ( )
96
+ . is_some_and ( |trait_did| ignored_traits. contains ( & trait_did) )
104
97
}
0 commit comments