@@ -275,7 +275,6 @@ fn completion_item(
275275 completion_trigger_character : Option < char > ,
276276 item : CompletionItem ,
277277) {
278- let original_completion_item = item. clone ( ) ;
279278 let insert_replace_support = config. insert_replace_support ( ) . then_some ( tdpp. position ) ;
280279 let ref_match = item. ref_match ( ) ;
281280
@@ -297,7 +296,7 @@ fn completion_item(
297296 // non-trivial mapping here.
298297 let mut text_edit = None ;
299298 let source_range = item. source_range ;
300- for indel in item. text_edit {
299+ for indel in & item. text_edit {
301300 if indel. delete . contains_range ( source_range) {
302301 // Extract this indel as the main edit
303302 text_edit = Some ( if indel. delete == source_range {
@@ -349,7 +348,7 @@ fn completion_item(
349348 something_to_resolve |= item. documentation . is_some ( ) ;
350349 None
351350 } else {
352- item. documentation . map ( documentation)
351+ item. documentation . clone ( ) . map ( documentation)
353352 } ;
354353
355354 let mut lsp_item = lsp_types:: CompletionItem {
@@ -373,10 +372,10 @@ fn completion_item(
373372 } else {
374373 lsp_item. label_details = Some ( lsp_types:: CompletionItemLabelDetails {
375374 detail : item. label_detail . as_ref ( ) . map ( ToString :: to_string) ,
376- description : item. detail ,
375+ description : item. detail . clone ( ) ,
377376 } ) ;
378377 }
379- } else if let Some ( label_detail) = item. label_detail {
378+ } else if let Some ( label_detail) = & item. label_detail {
380379 lsp_item. label . push_str ( label_detail. as_str ( ) ) ;
381380 }
382381
@@ -385,6 +384,7 @@ fn completion_item(
385384 let imports =
386385 if config. completion ( None ) . enable_imports_on_the_fly && !item. import_to_add . is_empty ( ) {
387386 item. import_to_add
387+ . clone ( )
388388 . into_iter ( )
389389 . map ( |( import_path, import_name) | lsp_ext:: CompletionImport {
390390 full_import_path : import_path,
@@ -402,7 +402,7 @@ fn completion_item(
402402 version,
403403 trigger_character : completion_trigger_character,
404404 for_ref : true ,
405- hash : completion_item_hash ( & original_completion_item , true ) ,
405+ hash : completion_item_hash ( & item , true ) ,
406406 } ;
407407 Some ( to_value ( ref_resolve_data) . unwrap ( ) )
408408 } else {
@@ -414,7 +414,7 @@ fn completion_item(
414414 version,
415415 trigger_character : completion_trigger_character,
416416 for_ref : false ,
417- hash : completion_item_hash ( & original_completion_item , false ) ,
417+ hash : completion_item_hash ( & item , false ) ,
418418 } ;
419419 ( ref_resolve_data, Some ( to_value ( resolve_data) . unwrap ( ) ) )
420420 } else {
0 commit comments