mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 13:03:31 +00:00
Use the selection range when resolving call hierarchy items
Add a test in call_hierarchy that already passed Fixes #5103
This commit is contained in:
parent
248b656c21
commit
20d864807d
2 changed files with 39 additions and 2 deletions
|
@ -355,4 +355,41 @@ fn caller3() {
|
|||
&["caller3 FN_DEF FileId(1) 66..83 69..76 : [52..59]"],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_call_hierarchy_issue_5103() {
|
||||
check_hierarchy(
|
||||
r#"
|
||||
fn a() {
|
||||
b()
|
||||
}
|
||||
|
||||
fn b() {}
|
||||
|
||||
fn main() {
|
||||
a<|>()
|
||||
}
|
||||
"#,
|
||||
"a FN_DEF FileId(1) 0..18 3..4",
|
||||
&["main FN_DEF FileId(1) 31..52 34..38 : [47..48]"],
|
||||
&["b FN_DEF FileId(1) 20..29 23..24 : [13..14]"],
|
||||
);
|
||||
|
||||
check_hierarchy(
|
||||
r#"
|
||||
fn a() {
|
||||
b<|>()
|
||||
}
|
||||
|
||||
fn b() {}
|
||||
|
||||
fn main() {
|
||||
a()
|
||||
}
|
||||
"#,
|
||||
"b FN_DEF FileId(1) 20..29 23..24",
|
||||
&["a FN_DEF FileId(1) 0..18 3..4 : [13..14]"],
|
||||
&[],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1045,7 +1045,7 @@ pub(crate) fn handle_call_hierarchy_incoming(
|
|||
let item = params.item;
|
||||
|
||||
let doc = TextDocumentIdentifier::new(item.uri);
|
||||
let frange = from_proto::file_range(&snap, doc, item.range)?;
|
||||
let frange = from_proto::file_range(&snap, doc, item.selection_range)?;
|
||||
let fpos = FilePosition { file_id: frange.file_id, offset: frange.range.start() };
|
||||
|
||||
let call_items = match snap.analysis.incoming_calls(fpos)? {
|
||||
|
@ -1080,7 +1080,7 @@ pub(crate) fn handle_call_hierarchy_outgoing(
|
|||
let item = params.item;
|
||||
|
||||
let doc = TextDocumentIdentifier::new(item.uri);
|
||||
let frange = from_proto::file_range(&snap, doc, item.range)?;
|
||||
let frange = from_proto::file_range(&snap, doc, item.selection_range)?;
|
||||
let fpos = FilePosition { file_id: frange.file_id, offset: frange.range.start() };
|
||||
|
||||
let call_items = match snap.analysis.outgoing_calls(fpos)? {
|
||||
|
|
Loading…
Reference in a new issue