]> git.lizzy.rs Git - rust.git/commitdiff
Reduce path_from_text usage
authorAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 31 Aug 2020 13:47:42 +0000 (15:47 +0200)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 31 Aug 2020 13:47:42 +0000 (15:47 +0200)
crates/assists/src/handlers/expand_glob_import.rs
crates/syntax/src/ast/make.rs

index b39d040f6fdae62d939aa86a7ef6faa1c3a09647..e14ac7f65ed5d128cca6f8220a938043409ebfa3 100644 (file)
@@ -4,7 +4,11 @@
     defs::{classify_name_ref, Definition, NameRefClass},
     search::SearchScope,
 };
-use syntax::{algo, ast, AstNode, Direction, SyntaxNode, SyntaxToken, T};
+use syntax::{
+    algo,
+    ast::{self, make},
+    AstNode, Direction, SyntaxNode, SyntaxToken, T,
+};
 
 use crate::{
     assist_context::{AssistBuilder, AssistContext, Assists},
@@ -249,7 +253,10 @@ fn replace_ast(
 
     let new_use_trees: Vec<ast::UseTree> = names_to_import
         .iter()
-        .map(|n| ast::make::use_tree(ast::make::path_from_text(&n.to_string()), None, None, false))
+        .map(|n| {
+            let path = make::path_unqualified(make::path_segment(make::name_ref(&n.to_string())));
+            make::use_tree(path, None, None, false)
+        })
         .collect();
 
     let use_trees = [&existing_use_trees[..], &new_use_trees[..]].concat();
@@ -257,8 +264,8 @@ fn replace_ast(
     match use_trees.as_slice() {
         [name] => {
             if let Some(end_path) = name.path() {
-                let replacement = ast::make::use_tree(
-                    ast::make::path_from_text(&format!("{}::{}", path, end_path)),
+                let replacement = make::use_tree(
+                    make::path_from_text(&format!("{}::{}", path, end_path)),
                     None,
                     None,
                     false,
@@ -273,15 +280,12 @@ fn replace_ast(
         }
         names => {
             let replacement = match parent {
-                Either::Left(_) => ast::make::use_tree(
-                    path,
-                    Some(ast::make::use_tree_list(names.to_owned())),
-                    None,
-                    false,
-                )
-                .syntax()
-                .clone(),
-                Either::Right(_) => ast::make::use_tree_list(names.to_owned()).syntax().clone(),
+                Either::Left(_) => {
+                    make::use_tree(path, Some(make::use_tree_list(names.to_owned())), None, false)
+                        .syntax()
+                        .clone()
+                }
+                Either::Right(_) => make::use_tree_list(names.to_owned()).syntax().clone(),
             };
 
             algo::diff(
index a83f76857804e721ab6f8e464ad4bb9fe125cb63..c2c938ad11d11f16928a9b4c11639afce599560e 100644 (file)
@@ -33,6 +33,7 @@ pub fn path_unqualified(segment: ast::PathSegment) -> ast::Path {
 pub fn path_qualified(qual: ast::Path, segment: ast::PathSegment) -> ast::Path {
     path_from_text(&format!("{}::{}", qual, segment))
 }
+// FIXME: make this private
 pub fn path_from_text(text: &str) -> ast::Path {
     ast_from_text(text)
 }