@@ -1470,6 +1470,7 @@ impl<'tcx> LateLintPass<'tcx> for Methods {
14701470 }
14711471 }
14721472
1473+ #[ allow( clippy:: too_many_lines) ]
14731474 fn check_impl_item ( & mut self , cx : & LateContext < ' tcx > , impl_item : & ' tcx hir:: ImplItem < ' _ > ) {
14741475 if in_external_macro ( cx. sess ( ) , impl_item. span ) {
14751476 return ;
@@ -1501,7 +1502,7 @@ impl<'tcx> LateLintPass<'tcx> for Methods {
15011502 sig. decl. inputs. len( ) == method_config. param_count &&
15021503 method_config. output_type. matches( cx, & sig. decl. output) &&
15031504 method_config. self_kind. matches( cx, self_ty, first_arg_ty) &&
1504- fn_header_equals( * method_config. fn_header, sig. header) &&
1505+ fn_header_equals( method_config. fn_header, sig. header) &&
15051506 method_config. lifetime_param_cond( & impl_item)
15061507 {
15071508 span_lint_and_help(
@@ -3422,7 +3423,7 @@ struct ShouldImplTraitCase {
34223423 trait_name : & ' static str ,
34233424 method_name : & ' static str ,
34243425 param_count : usize ,
3425- fn_header : & ' static hir:: FnHeader ,
3426+ fn_header : hir:: FnHeader ,
34263427 // implicit self kind expected (none, self, &self, ...)
34273428 self_kind : SelfKind ,
34283429 // checks against the output type
@@ -3435,7 +3436,7 @@ impl ShouldImplTraitCase {
34353436 trait_name : & ' static str ,
34363437 method_name : & ' static str ,
34373438 param_count : usize ,
3438- fn_header : & ' static hir:: FnHeader ,
3439+ fn_header : hir:: FnHeader ,
34393440 self_kind : SelfKind ,
34403441 output_type : OutType ,
34413442 lint_explicit_lifetime : bool ,
@@ -3466,37 +3467,37 @@ impl ShouldImplTraitCase {
34663467
34673468#[ rustfmt:: skip]
34683469const TRAIT_METHODS : [ ShouldImplTraitCase ; 30 ] = [
3469- ShouldImplTraitCase :: new ( "std::ops::Add" , "add" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3470- ShouldImplTraitCase :: new ( "std::convert::AsMut" , "as_mut" , 1 , & FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3471- ShouldImplTraitCase :: new ( "std::convert::AsRef" , "as_ref" , 1 , & FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3472- ShouldImplTraitCase :: new ( "std::ops::BitAnd" , "bitand" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3473- ShouldImplTraitCase :: new ( "std::ops::BitOr" , "bitor" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3474- ShouldImplTraitCase :: new ( "std::ops::BitXor" , "bitxor" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3475- ShouldImplTraitCase :: new ( "std::borrow::Borrow" , "borrow" , 1 , & FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3476- ShouldImplTraitCase :: new ( "std::borrow::BorrowMut" , "borrow_mut" , 1 , & FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3477- ShouldImplTraitCase :: new ( "std::clone::Clone" , "clone" , 1 , & FN_HEADER , SelfKind :: Ref , OutType :: Any , true ) ,
3478- ShouldImplTraitCase :: new ( "std::cmp::Ord" , "cmp" , 2 , & FN_HEADER , SelfKind :: Ref , OutType :: Any , true ) ,
3470+ ShouldImplTraitCase :: new ( "std::ops::Add" , "add" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3471+ ShouldImplTraitCase :: new ( "std::convert::AsMut" , "as_mut" , 1 , FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3472+ ShouldImplTraitCase :: new ( "std::convert::AsRef" , "as_ref" , 1 , FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3473+ ShouldImplTraitCase :: new ( "std::ops::BitAnd" , "bitand" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3474+ ShouldImplTraitCase :: new ( "std::ops::BitOr" , "bitor" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3475+ ShouldImplTraitCase :: new ( "std::ops::BitXor" , "bitxor" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3476+ ShouldImplTraitCase :: new ( "std::borrow::Borrow" , "borrow" , 1 , FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3477+ ShouldImplTraitCase :: new ( "std::borrow::BorrowMut" , "borrow_mut" , 1 , FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3478+ ShouldImplTraitCase :: new ( "std::clone::Clone" , "clone" , 1 , FN_HEADER , SelfKind :: Ref , OutType :: Any , true ) ,
3479+ ShouldImplTraitCase :: new ( "std::cmp::Ord" , "cmp" , 2 , FN_HEADER , SelfKind :: Ref , OutType :: Any , true ) ,
34793480 // FIXME: default doesn't work
3480- ShouldImplTraitCase :: new ( "std::default::Default" , "default" , 0 , & FN_HEADER , SelfKind :: No , OutType :: Any , true ) ,
3481- ShouldImplTraitCase :: new ( "std::ops::Deref" , "deref" , 1 , & FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3482- ShouldImplTraitCase :: new ( "std::ops::DerefMut" , "deref_mut" , 1 , & FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3483- ShouldImplTraitCase :: new ( "std::ops::Div" , "div" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3484- ShouldImplTraitCase :: new ( "std::ops::Drop" , "drop" , 1 , & FN_HEADER , SelfKind :: RefMut , OutType :: Unit , true ) ,
3485- ShouldImplTraitCase :: new ( "std::cmp::PartialEq" , "eq" , 2 , & FN_HEADER , SelfKind :: Ref , OutType :: Bool , true ) ,
3486- ShouldImplTraitCase :: new ( "std::iter::FromIterator" , "from_iter" , 1 , & FN_HEADER , SelfKind :: No , OutType :: Any , true ) ,
3487- ShouldImplTraitCase :: new ( "std::str::FromStr" , "from_str" , 1 , & FN_HEADER , SelfKind :: No , OutType :: Any , true ) ,
3488- ShouldImplTraitCase :: new ( "std::hash::Hash" , "hash" , 2 , & FN_HEADER , SelfKind :: Ref , OutType :: Unit , true ) ,
3489- ShouldImplTraitCase :: new ( "std::ops::Index" , "index" , 2 , & FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3490- ShouldImplTraitCase :: new ( "std::ops::IndexMut" , "index_mut" , 2 , & FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3491- ShouldImplTraitCase :: new ( "std::iter::IntoIterator" , "into_iter" , 1 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3492- ShouldImplTraitCase :: new ( "std::ops::Mul" , "mul" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3493- ShouldImplTraitCase :: new ( "std::ops::Neg" , "neg" , 1 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3494- ShouldImplTraitCase :: new ( "std::iter::Iterator" , "next" , 1 , & FN_HEADER , SelfKind :: RefMut , OutType :: Any , false ) ,
3495- ShouldImplTraitCase :: new ( "std::ops::Not" , "not" , 1 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3496- ShouldImplTraitCase :: new ( "std::ops::Rem" , "rem" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3497- ShouldImplTraitCase :: new ( "std::ops::Shl" , "shl" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3498- ShouldImplTraitCase :: new ( "std::ops::Shr" , "shr" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3499- ShouldImplTraitCase :: new ( "std::ops::Sub" , "sub" , 2 , & FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3481+ ShouldImplTraitCase :: new ( "std::default::Default" , "default" , 0 , FN_HEADER , SelfKind :: No , OutType :: Any , true ) ,
3482+ ShouldImplTraitCase :: new ( "std::ops::Deref" , "deref" , 1 , FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3483+ ShouldImplTraitCase :: new ( "std::ops::DerefMut" , "deref_mut" , 1 , FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3484+ ShouldImplTraitCase :: new ( "std::ops::Div" , "div" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3485+ ShouldImplTraitCase :: new ( "std::ops::Drop" , "drop" , 1 , FN_HEADER , SelfKind :: RefMut , OutType :: Unit , true ) ,
3486+ ShouldImplTraitCase :: new ( "std::cmp::PartialEq" , "eq" , 2 , FN_HEADER , SelfKind :: Ref , OutType :: Bool , true ) ,
3487+ ShouldImplTraitCase :: new ( "std::iter::FromIterator" , "from_iter" , 1 , FN_HEADER , SelfKind :: No , OutType :: Any , true ) ,
3488+ ShouldImplTraitCase :: new ( "std::str::FromStr" , "from_str" , 1 , FN_HEADER , SelfKind :: No , OutType :: Any , true ) ,
3489+ ShouldImplTraitCase :: new ( "std::hash::Hash" , "hash" , 2 , FN_HEADER , SelfKind :: Ref , OutType :: Unit , true ) ,
3490+ ShouldImplTraitCase :: new ( "std::ops::Index" , "index" , 2 , FN_HEADER , SelfKind :: Ref , OutType :: Ref , true ) ,
3491+ ShouldImplTraitCase :: new ( "std::ops::IndexMut" , "index_mut" , 2 , FN_HEADER , SelfKind :: RefMut , OutType :: Ref , true ) ,
3492+ ShouldImplTraitCase :: new ( "std::iter::IntoIterator" , "into_iter" , 1 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3493+ ShouldImplTraitCase :: new ( "std::ops::Mul" , "mul" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3494+ ShouldImplTraitCase :: new ( "std::ops::Neg" , "neg" , 1 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3495+ ShouldImplTraitCase :: new ( "std::iter::Iterator" , "next" , 1 , FN_HEADER , SelfKind :: RefMut , OutType :: Any , false ) ,
3496+ ShouldImplTraitCase :: new ( "std::ops::Not" , "not" , 1 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3497+ ShouldImplTraitCase :: new ( "std::ops::Rem" , "rem" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3498+ ShouldImplTraitCase :: new ( "std::ops::Shl" , "shl" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3499+ ShouldImplTraitCase :: new ( "std::ops::Shr" , "shr" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
3500+ ShouldImplTraitCase :: new ( "std::ops::Sub" , "sub" , 2 , FN_HEADER , SelfKind :: Value , OutType :: Any , true ) ,
35003501] ;
35013502
35023503#[ rustfmt:: skip]
0 commit comments