From b0c8a2be7bd0d053eb9dd0e02fe2cf08b093a19a Mon Sep 17 00:00:00 2001 From: Mikhail Rakhmanov Date: Thu, 4 Jun 2020 10:03:44 +0200 Subject: Remove AsName import --- .../src/handlers/extract_struct_from_enum_variant.rs | 13 +++++++++---- crates/ra_assists/src/utils/insert_use.rs | 11 ++++++++++- crates/ra_hir/src/lib.rs | 5 ++--- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs b/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs index 2b1951aff..72e5dd735 100644 --- a/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs +++ b/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs @@ -9,11 +9,11 @@ use ra_syntax::{ use crate::{ assist_context::{AssistBuilder, AssistDirector}, - utils::insert_use_statement, + utils::insert_use::insert_use_statement_with_string_path, AssistContext, AssistId, Assists, }; use ast::{ArgListOwner, VisibilityOwner}; -use hir::{AsName, EnumVariant, Module, ModuleDef}; +use hir::{EnumVariant, Module, ModuleDef}; use ra_db::FileId; use ra_fmt::leading_indent; use rustc_hash::FxHashSet; @@ -109,8 +109,13 @@ fn insert_import( let mod_path = module.find_use_path(db, module_def.clone()); if let Some(mut mod_path) = mod_path { mod_path.segments.pop(); - mod_path.segments.push(path_segment.as_name()); - insert_use_statement(path.syntax(), &mod_path, ctx, builder.text_edit_builder()); + let use_path = format!("{}::{}", mod_path.to_string(), path_segment.to_string()); + insert_use_statement_with_string_path( + path.syntax(), + &use_path, + ctx, + builder.text_edit_builder(), + ); } Some(()) } diff --git a/crates/ra_assists/src/utils/insert_use.rs b/crates/ra_assists/src/utils/insert_use.rs index 0ee43482f..114f5949a 100644 --- a/crates/ra_assists/src/utils/insert_use.rs +++ b/crates/ra_assists/src/utils/insert_use.rs @@ -23,7 +23,16 @@ pub(crate) fn insert_use_statement( ctx: &AssistContext, builder: &mut TextEditBuilder, ) { - let target = path_to_import.to_string().split("::").map(SmolStr::new).collect::>(); + insert_use_statement_with_string_path(position, &path_to_import.to_string(), ctx, builder); +} + +pub(crate) fn insert_use_statement_with_string_path( + position: &SyntaxNode, + path_to_import: &str, + ctx: &AssistContext, + builder: &mut TextEditBuilder, +) { + let target = path_to_import.split("::").map(SmolStr::new).collect::>(); let container = ctx.sema.ancestors_with_macros(position.clone()).find_map(|n| { if let Some(module) = ast::Module::cast(n.clone()) { return module.item_list().map(|it| it.syntax().clone()); diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index f4a6b0503..3364a822f 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs @@ -71,8 +71,7 @@ pub use hir_def::{ type_ref::Mutability, }; pub use hir_expand::{ - hygiene::Hygiene, - name::{AsName, Name}, - HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, MacroFile, Origin, + hygiene::Hygiene, name::Name, HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, + MacroFile, Origin, }; pub use hir_ty::{display::HirDisplay, CallableDef}; -- cgit v1.2.3