Auto merge of #12082 - iDawer:ide.signature_help, r=lnicola

fix: `signature_help`: use corresponding param list for methods

Close #12079
This commit is contained in:
bors 2022-04-26 07:34:00 +00:00
commit a8bc625f5a

View File

@ -115,7 +115,10 @@ fn signature_help_for_call(
hir::CallableKind::Function(func) => {
res.doc = func.docs(db).map(|it| it.into());
format_to!(res.signature, "fn {}", func.name(db));
fn_params = Some(func.assoc_fn_params(db));
fn_params = Some(match func.self_param(db) {
Some(_self) => func.params_without_self(db),
None => func.assoc_fn_params(db),
});
}
hir::CallableKind::TupleStruct(strukt) => {
res.doc = strukt.docs(db).map(|it| it.into());
@ -1036,6 +1039,25 @@ fn f() {
);
}
#[test]
fn test_generic_param_in_method_call() {
check(
r#"
struct Foo;
impl Foo {
fn test<V>(&mut self, val: V) {}
}
fn sup() {
Foo.test($0)
}
"#,
expect![[r#"
fn test(&mut self, val: V)
^^^^^^
"#]],
);
}
#[test]
fn test_generic_kinds() {
check(