//@no-rustfix //@revisions: default extend //@[default] rustc-env:CLIPPY_CONF_DIR=tests/ui-toml/renamed_function_params/default //@[extend] rustc-env:CLIPPY_CONF_DIR=tests/ui-toml/renamed_function_params/extend #![warn(clippy::renamed_function_params)] #![allow(clippy::partialeq_ne_impl, clippy::to_string_trait_impl)] #![allow(unused)] use std::hash::{Hash, Hasher}; struct A; impl From for String { fn from(_value: A) -> Self { String::new() } } impl ToString for A { fn to_string(&self) -> String { String::new() } } struct B(u32); impl std::convert::From for String { fn from(b: B) -> Self { b.0.to_string() } } impl PartialEq for B { fn eq(&self, rhs: &Self) -> bool { //~^ ERROR: renamed function parameter of trait impl self.0 == rhs.0 } fn ne(&self, rhs: &Self) -> bool { //~^ ERROR: renamed function parameter of trait impl self.0 != rhs.0 } } trait MyTrait { fn foo(&self, val: u8); fn bar(a: u8, b: u8); fn baz(self, _val: u8); fn quz(&self, _: u8); } impl MyTrait for B { fn foo(&self, i_dont_wanna_use_your_name: u8) {} // only lint in `extend` fn bar(_a: u8, _: u8) {} fn baz(self, val: u8) {} fn quz(&self, val: u8) {} } impl Hash for B { fn hash(&self, states: &mut H) { //~^ ERROR: renamed function parameter of trait impl self.0.hash(states); } fn hash_slice(date: &[Self], states: &mut H) { //~^ ERROR: renamed function parameters of trait impl for d in date { d.hash(states); } } } impl B { fn totally_irrelevant(&self, right: bool) {} fn some_fn(&self, other: impl MyTrait) {} } #[derive(Copy, Clone)] enum C { A, B(u32), } impl std::ops::Add for C { type Output = C; fn add(self, b: B) -> C { // only lint in `extend` C::B(b.0) } } impl From for C { fn from(_: A) -> C { C::A } } trait CustomTraitA { fn foo(&self, other: u32); } trait CustomTraitB { fn bar(&self, value: u8); } macro_rules! impl_trait { ($impl_for:ident, $tr:ty, $fn_name:ident, $t:ty) => { impl $tr for $impl_for { fn $fn_name(&self, v: $t) {} } }; } impl_trait!(C, CustomTraitA, foo, u32); impl_trait!(C, CustomTraitB, bar, u8); fn main() {}