Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide/src/hover.rs1
-rw-r--r--crates/ide/src/hover/tests.rs59
2 files changed, 32 insertions, 28 deletions
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs
index f4fb52647e..2ebf46b564 100644
--- a/crates/ide/src/hover.rs
+++ b/crates/ide/src/hover.rs
@@ -314,6 +314,7 @@ fn goto_type_action_for_def(db: &RootDatabase, def: Definition) -> Option<HoverA
Definition::Local(it) => it.ty(db),
Definition::GenericParam(hir::GenericParam::ConstParam(it)) => it.ty(db),
Definition::Field(field) => field.ty(db),
+ Definition::Function(function) => function.ret_type(db),
_ => return None,
};
diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs
index 91a4db33fb..3b415c54fb 100644
--- a/crates/ide/src/hover/tests.rs
+++ b/crates/ide/src/hover/tests.rs
@@ -1718,40 +1718,43 @@ fn test_hover_test_has_action() {
fn foo_$0test() {}
"#,
expect![[r#"
- [
- Reference(
- FilePosition {
+ [
+ Reference(
+ FilePosition {
+ file_id: FileId(
+ 0,
+ ),
+ offset: 11,
+ },
+ ),
+ Runnable(
+ Runnable {
+ use_name_in_title: false,
+ nav: NavigationTarget {
file_id: FileId(
0,
),
- offset: 11,
+ full_range: 0..24,
+ focus_range: 11..19,
+ name: "foo_test",
+ kind: Function,
},
- ),
- Runnable(
- Runnable {
- use_name_in_title: false,
- nav: NavigationTarget {
- file_id: FileId(
- 0,
- ),
- full_range: 0..24,
- focus_range: 11..19,
- name: "foo_test",
- kind: Function,
- },
- kind: Test {
- test_id: Path(
- "foo_test",
- ),
- attr: TestAttr {
- ignore: false,
- },
+ kind: Test {
+ test_id: Path(
+ "foo_test",
+ ),
+ attr: TestAttr {
+ ignore: false,
},
- cfg: None,
},
- ),
- ]
- "#]],
+ cfg: None,
+ },
+ ),
+ GoToType(
+ [],
+ ),
+ ]
+ "#]],
);
}