diff options
author | Lukas Wirth <[email protected]> | 2021-01-12 14:51:02 +0000 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2021-01-12 14:51:02 +0000 |
commit | 2c1777a2e264e58fccd5ace94b238c8a497ddbda (patch) | |
tree | e7d47c95c6bcdeecd5f321f4ca969d04ca90dff7 /crates/assists/src/handlers/remove_unused_param.rs | |
parent | fbdb32adfc49e0d69b7fd8e44135bea59382d2cb (diff) |
Ensure uniqueness of file ids in reference search via hashmap
Diffstat (limited to 'crates/assists/src/handlers/remove_unused_param.rs')
-rw-r--r-- | crates/assists/src/handlers/remove_unused_param.rs | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/crates/assists/src/handlers/remove_unused_param.rs b/crates/assists/src/handlers/remove_unused_param.rs index 4f3b8ac46..c961680e2 100644 --- a/crates/assists/src/handlers/remove_unused_param.rs +++ b/crates/assists/src/handlers/remove_unused_param.rs | |||
@@ -1,7 +1,4 @@ | |||
1 | use ide_db::{ | 1 | use ide_db::{base_db::FileId, defs::Definition, search::FileReference}; |
2 | defs::Definition, | ||
3 | search::{FileReference, FileReferences}, | ||
4 | }; | ||
5 | use syntax::{ | 2 | use syntax::{ |
6 | algo::find_node_at_range, | 3 | algo::find_node_at_range, |
7 | ast::{self, ArgListOwner}, | 4 | ast::{self, ArgListOwner}, |
@@ -61,8 +58,8 @@ pub(crate) fn remove_unused_param(acc: &mut Assists, ctx: &AssistContext) -> Opt | |||
61 | param.syntax().text_range(), | 58 | param.syntax().text_range(), |
62 | |builder| { | 59 | |builder| { |
63 | builder.delete(range_to_remove(param.syntax())); | 60 | builder.delete(range_to_remove(param.syntax())); |
64 | for usages in fn_def.usages(&ctx.sema).all() { | 61 | for (file_id, references) in fn_def.usages(&ctx.sema).all() { |
65 | process_usages(ctx, builder, usages, param_position); | 62 | process_usages(ctx, builder, file_id, references, param_position); |
66 | } | 63 | } |
67 | }, | 64 | }, |
68 | ) | 65 | ) |
@@ -71,12 +68,13 @@ pub(crate) fn remove_unused_param(acc: &mut Assists, ctx: &AssistContext) -> Opt | |||
71 | fn process_usages( | 68 | fn process_usages( |
72 | ctx: &AssistContext, | 69 | ctx: &AssistContext, |
73 | builder: &mut AssistBuilder, | 70 | builder: &mut AssistBuilder, |
74 | usages: FileReferences, | 71 | file_id: FileId, |
72 | references: Vec<FileReference>, | ||
75 | arg_to_remove: usize, | 73 | arg_to_remove: usize, |
76 | ) { | 74 | ) { |
77 | let source_file = ctx.sema.parse(usages.file_id); | 75 | let source_file = ctx.sema.parse(file_id); |
78 | builder.edit_file(usages.file_id); | 76 | builder.edit_file(file_id); |
79 | for usage in usages.references { | 77 | for usage in references { |
80 | if let Some(text_range) = process_usage(&source_file, usage, arg_to_remove) { | 78 | if let Some(text_range) = process_usage(&source_file, usage, arg_to_remove) { |
81 | builder.delete(text_range); | 79 | builder.delete(text_range); |
82 | } | 80 | } |