mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 05:45:12 +00:00
Merge #10798
10798: ide: show go to for function hover return type r=Veykril a=jhgg I've found myself wanting this... adds to the hover quick go-to for a function's return type:  This is particularly useful when you are hovering over a function in a long chain, like: ```rust foo.bar().b$0az().some_trait_fn(); ``` where `baz`'s return type is not immediately obvious, but the chain is not long enough to trigger chain inlay hints... i guess I could just select `foo.bar().baz()` too to get the types too... Co-authored-by: Jake Heinz <jh@discordapp.com>
This commit is contained in:
commit
cfa26c3ac3
2 changed files with 32 additions and 28 deletions
|
@ -314,6 +314,7 @@ fn goto_type_action_for_def(db: &RootDatabase, def: Definition) -> Option<HoverA
|
||||||
Definition::Local(it) => it.ty(db),
|
Definition::Local(it) => it.ty(db),
|
||||||
Definition::GenericParam(hir::GenericParam::ConstParam(it)) => it.ty(db),
|
Definition::GenericParam(hir::GenericParam::ConstParam(it)) => it.ty(db),
|
||||||
Definition::Field(field) => field.ty(db),
|
Definition::Field(field) => field.ty(db),
|
||||||
|
Definition::Function(function) => function.ret_type(db),
|
||||||
_ => return None,
|
_ => return None,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1718,40 +1718,43 @@ fn test_hover_test_has_action() {
|
||||||
fn foo_$0test() {}
|
fn foo_$0test() {}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
[
|
[
|
||||||
Reference(
|
Reference(
|
||||||
FilePosition {
|
FilePosition {
|
||||||
|
file_id: FileId(
|
||||||
|
0,
|
||||||
|
),
|
||||||
|
offset: 11,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
Runnable(
|
||||||
|
Runnable {
|
||||||
|
use_name_in_title: false,
|
||||||
|
nav: NavigationTarget {
|
||||||
file_id: FileId(
|
file_id: FileId(
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
offset: 11,
|
full_range: 0..24,
|
||||||
|
focus_range: 11..19,
|
||||||
|
name: "foo_test",
|
||||||
|
kind: Function,
|
||||||
},
|
},
|
||||||
),
|
kind: Test {
|
||||||
Runnable(
|
test_id: Path(
|
||||||
Runnable {
|
"foo_test",
|
||||||
use_name_in_title: false,
|
),
|
||||||
nav: NavigationTarget {
|
attr: TestAttr {
|
||||||
file_id: FileId(
|
ignore: false,
|
||||||
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,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
cfg: None,
|
|
||||||
},
|
},
|
||||||
),
|
cfg: None,
|
||||||
]
|
},
|
||||||
"#]],
|
),
|
||||||
|
GoToType(
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
]
|
||||||
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue