) -> bool {
if param_name.is_empty()
|| is_argument_similar_to_param(argument, param_name)
- || Some(param_name) == fn_signature.name.as_ref().map(String::as_str)
+ || Some(param_name.trim_start_matches('_'))
+ == fn_signature.name.as_ref().map(|s| s.trim_start_matches('_'))
{
return false;
}
fn is_argument_similar_to_param(argument: &ast::Expr, param_name: &str) -> bool {
let argument_string = remove_ref(argument.clone()).syntax().to_string();
+ let param_name = param_name.trim_start_matches('_');
+ let argument_string = argument_string.trim_start_matches('_');
argument_string.starts_with(¶m_name) || argument_string.ends_with(¶m_name)
}
fn different_order(param: &Param) {}
fn different_order_mut(param: &mut Param) {}
+fn has_underscore(_param: bool) {}
fn twiddle(twiddle: bool) {}
+fn doo(_doo: bool) {}
fn main() {
let container: TestVarContainer = TestVarContainer { test_var: 42 };
test_processed.frob(false);
twiddle(true);
+ doo(true);
let param_begin: Param = Param {};
different_order(¶m_begin);
different_order(&mut param_begin);
+ let param: bool = true;
+ has_underscore(param);
+
let a: f64 = 7.0;
let b: f64 = 4.0;
let _: f64 = a.div_euclid(b);