@@ -2,10 +2,11 @@ use clippy_utils::diagnostics::span_lint_and_then;
22use rustc_errors:: { Applicability , MultiSpan } ;
33use rustc_hir:: def_id:: { DefId , DefIdSet } ;
44use rustc_hir:: hir_id:: OwnerId ;
5- use rustc_hir:: { Impl , ImplItem , ImplItemKind , ItemKind , Node , TraitRef } ;
5+ use rustc_hir:: { ImplItem , ImplItemKind , ItemKind , Node , TraitRef } ;
66use rustc_lint:: LateContext ;
77use rustc_span:: Span ;
88use rustc_span:: symbol:: { Ident , kw} ;
9+ use std:: iter;
910
1011use super :: RENAMED_FUNCTION_PARAMS ;
1112
@@ -14,12 +15,10 @@ pub(super) fn check_impl_item(cx: &LateContext<'_>, item: &ImplItem<'_>, ignored
1415 && let ImplItemKind :: Fn ( _, body_id) = item. kind
1516 && let parent_node = cx. tcx . parent_hir_node ( item. hir_id ( ) )
1617 && 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
2120 && 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)
2322 {
2423 let mut param_idents_iter = cx. tcx . hir_body_param_idents ( body_id) ;
2524 let mut default_param_idents_iter = cx. tcx . fn_arg_idents ( did) . iter ( ) . copied ( ) ;
@@ -58,16 +57,11 @@ impl RenamedFnArgs {
5857 let mut renamed: Vec < ( Span , String ) > = vec ! [ ] ;
5958
6059 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) {
6261 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 ( '_' ) )
7165 } ;
7266
7367 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
9791}
9892
9993fn 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) )
10497}
0 commit comments