Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide-assists/src/handlers/merge_imports.rs4
-rw-r--r--crates/ide-assists/src/handlers/normalize_import.rs2
-rw-r--r--crates/ide-db/src/imports/insert_use.rs4
-rw-r--r--crates/ide-db/src/imports/insert_use/tests.rs13
-rw-r--r--crates/ide-db/src/imports/merge_imports.rs23
-rw-r--r--crates/parser/src/output.rs2
6 files changed, 22 insertions, 26 deletions
diff --git a/crates/ide-assists/src/handlers/merge_imports.rs b/crates/ide-assists/src/handlers/merge_imports.rs
index e942be33d9..5d81f49b18 100644
--- a/crates/ide-assists/src/handlers/merge_imports.rs
+++ b/crates/ide-assists/src/handlers/merge_imports.rs
@@ -98,7 +98,7 @@ fn merge_uses(
};
let mut merged = first.clone();
for item in &rest {
- merged = try_merge_imports(editor, &merged, item, mb)?;
+ merged = try_merge_imports(editor.make(), &merged, item, mb)?;
}
for item in rest {
item.remove(editor);
@@ -118,7 +118,7 @@ fn merge_use_trees(
let mut merged = first.clone();
for item in &rest {
- merged = try_merge_trees(editor, &merged, item, MergeBehavior::Crate)?;
+ merged = try_merge_trees(editor.make(), &merged, item, MergeBehavior::Crate)?;
}
for item in rest {
item.remove(editor);
diff --git a/crates/ide-assists/src/handlers/normalize_import.rs b/crates/ide-assists/src/handlers/normalize_import.rs
index 07571d74d8..906f38cba4 100644
--- a/crates/ide-assists/src/handlers/normalize_import.rs
+++ b/crates/ide-assists/src/handlers/normalize_import.rs
@@ -27,7 +27,7 @@ pub(crate) fn normalize_import(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -
let target = use_item.syntax().text_range();
let (editor, _) = SyntaxEditor::new(use_item.syntax().ancestors().last().unwrap());
let normalized_use_item =
- try_normalize_import(&editor, &use_item, ctx.config.insert_use.granularity.into())?;
+ try_normalize_import(editor.make(), &use_item, ctx.config.insert_use.granularity.into())?;
editor.replace(use_item.syntax(), normalized_use_item.syntax());
acc.add(AssistId::refactor_rewrite("normalize_import"), "Normalize import", target, |builder| {
diff --git a/crates/ide-db/src/imports/insert_use.rs b/crates/ide-db/src/imports/insert_use.rs
index 1fd493fd2a..27e3ed6bdb 100644
--- a/crates/ide-db/src/imports/insert_use.rs
+++ b/crates/ide-db/src/imports/insert_use.rs
@@ -263,7 +263,9 @@ fn insert_use_with_alias_option_with_editor(
for existing_use in
scope.as_syntax_node().children().filter_map(ast::Use::cast).filter(filter)
{
- if let Some(merged) = try_merge_imports(syntax_editor, &existing_use, &use_item, mb) {
+ if let Some(merged) =
+ try_merge_imports(syntax_editor.make(), &existing_use, &use_item, mb)
+ {
syntax_editor.replace(existing_use.syntax(), merged.syntax());
return;
}
diff --git a/crates/ide-db/src/imports/insert_use/tests.rs b/crates/ide-db/src/imports/insert_use/tests.rs
index a30d290490..34ff7c8d5b 100644
--- a/crates/ide-db/src/imports/insert_use/tests.rs
+++ b/crates/ide-db/src/imports/insert_use/tests.rs
@@ -1,4 +1,5 @@
use stdx::trim_indent;
+use syntax::ast::syntax_factory::SyntaxFactory;
use test_fixture::WithFixture;
use test_utils::{CURSOR_MARKER, assert_eq_text};
@@ -1430,8 +1431,8 @@ fn check_merge_only_fail(ra_fixture0: &str, ra_fixture1: &str, mb: MergeBehavior
.find_map(ast::Use::cast)
.unwrap();
- let (editor, _) = SyntaxEditor::new(use0.syntax().ancestors().last().unwrap());
- let result = try_merge_imports(&editor, &use0, &use1, mb);
+ let make = SyntaxFactory::without_mappings();
+ let result = try_merge_imports(&make, &use0, &use1, mb);
assert_eq!(result.map(|u| u.to_string()), None);
}
@@ -1496,8 +1497,8 @@ fn check_merge(ra_fixture0: &str, ra_fixture1: &str, last: &str, mb: MergeBehavi
.find_map(ast::Use::cast)
.unwrap();
- let (editor, _) = SyntaxEditor::new(use0.syntax().ancestors().last().unwrap());
- let result = try_merge_imports(&editor, &use0, &use1, mb);
+ let make = SyntaxFactory::without_mappings();
+ let result = try_merge_imports(&make, &use0, &use1, mb);
assert_eq!(result.map(|u| u.to_string().trim().to_owned()), Some(last.trim().to_owned()));
}
@@ -1527,8 +1528,8 @@ fn merge_gated_imports_with_different_values() {
.find_map(ast::Use::cast)
.unwrap();
- let (editor, _) = SyntaxEditor::new(use0.syntax().ancestors().last().unwrap());
- let result = try_merge_imports(&editor, &use0, &use1, MergeBehavior::Crate);
+ let make = SyntaxFactory::without_mappings();
+ let result = try_merge_imports(&make, &use0, &use1, MergeBehavior::Crate);
assert_eq!(result, None);
}
diff --git a/crates/ide-db/src/imports/merge_imports.rs b/crates/ide-db/src/imports/merge_imports.rs
index 95e654df17..9b68c27ae3 100644
--- a/crates/ide-db/src/imports/merge_imports.rs
+++ b/crates/ide-db/src/imports/merge_imports.rs
@@ -40,7 +40,7 @@ impl MergeBehavior {
/// Merge `rhs` into `lhs` keeping both intact.
pub fn try_merge_imports(
- editor: &SyntaxEditor,
+ make: &SyntaxFactory,
lhs: &ast::Use,
rhs: &ast::Use,
merge_behavior: MergeBehavior,
@@ -53,7 +53,6 @@ pub fn try_merge_imports(
return None;
}
- let make = editor.make();
let lhs_tree = lhs.use_tree()?;
let rhs_tree = rhs.use_tree()?;
let merged_tree = try_merge_trees_with_factory(lhs_tree, rhs_tree, merge_behavior, make)?;
@@ -67,12 +66,11 @@ pub fn try_merge_imports(
/// Merge `rhs` into `lhs` keeping both intact.
pub fn try_merge_trees(
- editor: &SyntaxEditor,
+ make: &SyntaxFactory,
lhs: &ast::UseTree,
rhs: &ast::UseTree,
merge: MergeBehavior,
) -> Option<ast::UseTree> {
- let make = editor.make();
let merged = try_merge_trees_with_factory(lhs.clone(), rhs.clone(), merge, make)?;
// Ignore `None` result because normalization should not affect the merge result.
@@ -100,15 +98,11 @@ fn try_merge_trees_with_factory(
{
// we can't merge if the renames are different (`A as a` and `A as b`),
// and we can safely return here
- let lhs_name = lhs
- .rename()
- .and_then(|lhs_name| lhs_name.name())
- .map(|name| name.text().to_string());
- let rhs_name = rhs
- .rename()
- .and_then(|rhs_name| rhs_name.name())
- .map(|name| name.text().to_string());
- if lhs_name != rhs_name {
+ let lhs_name = lhs.rename().and_then(|lhs_name| lhs_name.name());
+ let rhs_name = rhs.rename().and_then(|rhs_name| rhs_name.name());
+ if lhs_name.as_ref().map(|name| name.text())
+ != rhs_name.as_ref().map(|name| name.text())
+ {
return None;
}
@@ -263,11 +257,10 @@ impl From<MergeBehavior> for NormalizationStyle {
/// - `foo::bar::{self}` -> `{foo::bar}`
/// - `foo::bar` -> `{foo::bar}`
pub fn try_normalize_import(
- editor: &SyntaxEditor,
+ make: &SyntaxFactory,
use_item: &ast::Use,
style: NormalizationStyle,
) -> Option<ast::Use> {
- let make = editor.make();
let use_tree = try_normalize_use_tree(use_item.use_tree()?, style, make)?;
make_use_with_tree(use_item, use_tree)
diff --git a/crates/parser/src/output.rs b/crates/parser/src/output.rs
index 2f09b11218..ce64db8ada 100644
--- a/crates/parser/src/output.rs
+++ b/crates/parser/src/output.rs
@@ -18,7 +18,7 @@ pub struct Output {
///
/// ```text
/// |16 bit kind|8 bit n_input_tokens|4 bit tag|4 bit leftover|
- /// ``````
+ /// ```
event: Vec<u32>,
error: Vec<String>,
}