Skip to content

Commit 8bd14a3

Browse files
authored
Merge pull request #3910 from lnicola/fn-named-param-hint
Hide parameter hints for single-argument functions with the same name
2 parents 82c98f4 + 81aab50 commit 8bd14a3

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

crates/ra_ide/src/inlay_hints.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,10 @@ fn should_show_param_hint(
235235
param_name: &str,
236236
argument: &ast::Expr,
237237
) -> bool {
238-
if param_name.is_empty() || is_argument_similar_to_param(argument, param_name) {
238+
if param_name.is_empty()
239+
|| is_argument_similar_to_param(argument, param_name)
240+
|| Some(param_name) == fn_signature.name.as_ref().map(String::as_str)
241+
{
239242
return false;
240243
}
241244

@@ -247,10 +250,7 @@ fn should_show_param_hint(
247250

248251
// avoid displaying hints for common functions like map, filter, etc.
249252
// or other obvious words used in std
250-
if parameters_len == 1 && is_obvious_param(param_name) {
251-
return false;
252-
}
253-
true
253+
parameters_len != 1 || !is_obvious_param(param_name)
254254
}
255255

256256
fn is_argument_similar_to_param(argument: &ast::Expr, param_name: &str) -> bool {
@@ -1086,13 +1086,17 @@ impl Test {
10861086
}
10871087
10881088
fn no_hints_expected(&self, _: i32, test_var: i32) {}
1089+
1090+
fn frob(&self, frob: bool) {}
10891091
}
10901092
10911093
struct Param {}
10921094
10931095
fn different_order(param: &Param) {}
10941096
fn different_order_mut(param: &mut Param) {}
10951097
1098+
fn twiddle(twiddle: bool) {}
1099+
10961100
fn main() {
10971101
let container: TestVarContainer = TestVarContainer { test_var: 42 };
10981102
let test: Test = Test {};
@@ -1105,6 +1109,9 @@ fn main() {
11051109
let test_var: i32 = 55;
11061110
test_processed.no_hints_expected(22, test_var);
11071111
test_processed.no_hints_expected(33, container.test_var);
1112+
test_processed.frob(false);
1113+
1114+
twiddle(true);
11081115
11091116
let param_begin: Param = Param {};
11101117
different_order(&param_begin);

0 commit comments

Comments
 (0)