diff options
author | Lukas Wirth <[email protected]> | 2020-09-03 13:22:22 +0100 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2020-09-03 17:36:08 +0100 |
commit | c1925df7fc91a171925ecb59b9f1895ee59ce72f (patch) | |
tree | 475182f8b2f91a200cfa1662f7407242b6220cb6 /crates/assists/src/handlers/extract_struct_from_enum_variant.rs | |
parent | 952f3856822d471cf5062e82f544c901c385f3ae (diff) |
Replace insert_use_statement with the new insert_use
Diffstat (limited to 'crates/assists/src/handlers/extract_struct_from_enum_variant.rs')
-rw-r--r-- | crates/assists/src/handlers/extract_struct_from_enum_variant.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/crates/assists/src/handlers/extract_struct_from_enum_variant.rs b/crates/assists/src/handlers/extract_struct_from_enum_variant.rs index 8ac20210a..d9c50f25f 100644 --- a/crates/assists/src/handlers/extract_struct_from_enum_variant.rs +++ b/crates/assists/src/handlers/extract_struct_from_enum_variant.rs | |||
@@ -10,9 +10,12 @@ use syntax::{ | |||
10 | }; | 10 | }; |
11 | 11 | ||
12 | use crate::{ | 12 | use crate::{ |
13 | assist_context::AssistBuilder, utils::insert_use_statement, AssistContext, AssistId, | 13 | assist_context::AssistBuilder, |
14 | AssistKind, Assists, | 14 | utils::{insert_use, MergeBehaviour}, |
15 | AssistContext, AssistId, AssistKind, Assists, | ||
15 | }; | 16 | }; |
17 | use ast::make; | ||
18 | use insert_use::find_insert_use_container; | ||
16 | 19 | ||
17 | // Assist: extract_struct_from_enum_variant | 20 | // Assist: extract_struct_from_enum_variant |
18 | // | 21 | // |
@@ -107,12 +110,15 @@ fn insert_import( | |||
107 | if let Some(mut mod_path) = mod_path { | 110 | if let Some(mut mod_path) = mod_path { |
108 | mod_path.segments.pop(); | 111 | mod_path.segments.pop(); |
109 | mod_path.segments.push(variant_hir_name.clone()); | 112 | mod_path.segments.push(variant_hir_name.clone()); |
110 | insert_use_statement( | 113 | let container = find_insert_use_container(path.syntax(), ctx)?; |
111 | path.syntax(), | 114 | let syntax = container.either(|l| l.syntax().clone(), |r| r.syntax().clone()); |
112 | &mod_path.to_string(), | 115 | |
113 | ctx, | 116 | let new_syntax = insert_use( |
114 | builder.text_edit_builder(), | 117 | &syntax, |
118 | make::path_from_text(&mod_path.to_string()), | ||
119 | Some(MergeBehaviour::Full), | ||
115 | ); | 120 | ); |
121 | builder.replace(syntax.text_range(), new_syntax.to_string()) | ||
116 | } | 122 | } |
117 | Some(()) | 123 | Some(()) |
118 | } | 124 | } |