Skip to content

Commit e8e3949

Browse files
Always compute the hash when r-a wants the imports to be resolved
1 parent cbc0069 commit e8e3949

File tree

4 files changed

+6
-17
lines changed

4 files changed

+6
-17
lines changed

src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,9 +1123,6 @@ pub(crate) fn handle_completion_resolve(
11231123
return Ok(original_completion);
11241124
};
11251125
let source_root = snap.analysis.source_root_id(file_id)?;
1126-
let Some(completion_hash_for_resolve) = &resolve_data.completion_item_hash else {
1127-
return Ok(original_completion);
1128-
};
11291126

11301127
let mut forced_resolve_completions_config = snap.config.completion(Some(source_root));
11311128
forced_resolve_completions_config.fields_to_resolve = CompletionFieldsToResolve::empty();
@@ -1142,7 +1139,7 @@ pub(crate) fn handle_completion_resolve(
11421139

11431140
let Some(corresponding_completion) = completions.into_iter().find(|completion_item| {
11441141
let hash = completion_item_hash(&completion_item, resolve_data.for_ref);
1145-
&hash == completion_hash_for_resolve
1142+
hash == resolve_data.hash
11461143
}) else {
11471144
return Ok(original_completion);
11481145
};

src/tools/rust-analyzer/crates/rust-analyzer/src/lsp/ext.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,7 @@ pub struct CompletionResolveData {
827827
pub version: Option<i32>,
828828
pub trigger_character: Option<char>,
829829
pub for_ref: bool,
830-
pub completion_item_hash: Option<[u8; 20]>,
830+
pub hash: [u8; 20],
831831
}
832832

833833
#[derive(Debug, Serialize, Deserialize)]

src/tools/rust-analyzer/crates/rust-analyzer/src/lsp/to_proto.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -275,11 +275,7 @@ fn completion_item(
275275
completion_trigger_character: Option<char>,
276276
item: CompletionItem,
277277
) {
278-
let original_completion_item = if fields_to_resolve == &CompletionFieldsToResolve::empty() {
279-
None
280-
} else {
281-
Some(item.clone())
282-
};
278+
let original_completion_item = item.clone();
283279
let insert_replace_support = config.insert_replace_support().then_some(tdpp.position);
284280
let ref_match = item.ref_match();
285281

@@ -406,9 +402,7 @@ fn completion_item(
406402
version,
407403
trigger_character: completion_trigger_character,
408404
for_ref: true,
409-
completion_item_hash: original_completion_item
410-
.as_ref()
411-
.map(|item| completion_item_hash(item, true)),
405+
hash: completion_item_hash(&original_completion_item, true),
412406
};
413407
Some(to_value(ref_resolve_data).unwrap())
414408
} else {
@@ -420,9 +414,7 @@ fn completion_item(
420414
version,
421415
trigger_character: completion_trigger_character,
422416
for_ref: false,
423-
completion_item_hash: original_completion_item
424-
.as_ref()
425-
.map(|item| completion_item_hash(item, false)),
417+
hash: completion_item_hash(&original_completion_item, false),
426418
};
427419
(ref_resolve_data, Some(to_value(resolve_data).unwrap()))
428420
} else {

src/tools/rust-analyzer/docs/dev/lsp-extensions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!---
2-
lsp/ext.rs hash: 7d77940d7e63a8b
2+
lsp/ext.rs hash: c4c37ab0bcf7ccb0
33
44
If you need to change the above hash to make the test pass, please check if you
55
need to adjust this doc as well and ping this issue:

0 commit comments

Comments
 (0)