@@ -237,7 +237,8 @@ fn should_show_param_hint(
237
237
) -> bool {
238
238
if param_name. is_empty ( )
239
239
|| is_argument_similar_to_param ( argument, param_name)
240
- || Some ( param_name) == fn_signature. name . as_ref ( ) . map ( String :: as_str)
240
+ || Some ( param_name. trim_start_matches ( '_' ) )
241
+ == fn_signature. name . as_ref ( ) . map ( |s| s. trim_start_matches ( '_' ) )
241
242
{
242
243
return false ;
243
244
}
@@ -255,6 +256,8 @@ fn should_show_param_hint(
255
256
256
257
fn is_argument_similar_to_param ( argument : & ast:: Expr , param_name : & str ) -> bool {
257
258
let argument_string = remove_ref ( argument. clone ( ) ) . syntax ( ) . to_string ( ) ;
259
+ let param_name = param_name. trim_start_matches ( '_' ) ;
260
+ let argument_string = argument_string. trim_start_matches ( '_' ) ;
258
261
argument_string. starts_with ( & param_name) || argument_string. ends_with ( & param_name)
259
262
}
260
263
@@ -1094,8 +1097,10 @@ struct Param {}
1094
1097
1095
1098
fn different_order(param: &Param) {}
1096
1099
fn different_order_mut(param: &mut Param) {}
1100
+ fn has_underscore(_param: bool) {}
1097
1101
1098
1102
fn twiddle(twiddle: bool) {}
1103
+ fn doo(_doo: bool) {}
1099
1104
1100
1105
fn main() {
1101
1106
let container: TestVarContainer = TestVarContainer { test_var: 42 };
@@ -1112,11 +1117,15 @@ fn main() {
1112
1117
test_processed.frob(false);
1113
1118
1114
1119
twiddle(true);
1120
+ doo(true);
1115
1121
1116
1122
let param_begin: Param = Param {};
1117
1123
different_order(¶m_begin);
1118
1124
different_order(&mut param_begin);
1119
1125
1126
+ let param: bool = true;
1127
+ has_underscore(param);
1128
+
1120
1129
let a: f64 = 7.0;
1121
1130
let b: f64 = 4.0;
1122
1131
let _: f64 = a.div_euclid(b);
0 commit comments