Unnamed repository; edit this file 'description' to name the repository.
cover_edit_range uses SyntaxNode instead AstNode
A4-Tacks 8 weeks ago
parent c807114 · commit 3c9faac
-rw-r--r--crates/ide-assists/src/handlers/convert_named_struct_to_tuple_struct.rs6
-rw-r--r--crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs8
-rw-r--r--crates/ide-assists/src/handlers/destructure_struct_binding.rs2
-rw-r--r--crates/ide-assists/src/handlers/destructure_tuple_binding.rs2
-rw-r--r--crates/ide-assists/src/utils.rs4
5 files changed, 11 insertions, 11 deletions
diff --git a/crates/ide-assists/src/handlers/convert_named_struct_to_tuple_struct.rs b/crates/ide-assists/src/handlers/convert_named_struct_to_tuple_struct.rs
index 42fceb8533..4dd2036c02 100644
--- a/crates/ide-assists/src/handlers/convert_named_struct_to_tuple_struct.rs
+++ b/crates/ide-assists/src/handlers/convert_named_struct_to_tuple_struct.rs
@@ -242,7 +242,7 @@ where
{
let make = SyntaxFactory::without_mappings();
let orig = ctx.sema.original_range_opt(field_list.syntax())?;
- let list_range = cover_edit_range(source, orig.range);
+ let list_range = cover_edit_range(source.syntax(), orig.range);
let l_curly = match list_range.start() {
NodeOrToken::Node(node) => node.first_token()?,
@@ -265,7 +265,7 @@ where
for name_ref in fields(&field_list) {
let Some(orig) = ctx.sema.original_range_opt(name_ref.syntax()) else { continue };
- let name_range = cover_edit_range(source, orig.range);
+ let name_range = cover_edit_range(source.syntax(), orig.range);
if let Some(colon) = next_non_trivia_token(name_range.end().clone())
&& colon.kind() == T![:]
@@ -306,7 +306,7 @@ fn edit_field_references(
// Only edit the field reference if it's part of a `.field` access
if name_ref.syntax().parent().and_then(ast::FieldExpr::cast).is_some() {
edit.replace_all(
- cover_edit_range(&source, r.range),
+ cover_edit_range(source.syntax(), r.range),
vec![make.name_ref(&index.to_string()).syntax().clone().into()],
);
}
diff --git a/crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs b/crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs
index f1eae83866..270467b14f 100644
--- a/crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs
+++ b/crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs
@@ -191,7 +191,7 @@ fn process_struct_name_reference(
full_path,
generate_record_pat_list(&tuple_struct_pat, names),
);
- editor.replace_all(cover_edit_range(source, range), vec![new.syntax().clone().into()]);
+ editor.replace_all(cover_edit_range(source.syntax(), range), vec![new.syntax().clone().into()]);
},
ast::PathExpr(path_expr) => {
let call_expr = path_expr.syntax().parent().and_then(ast::CallExpr::cast)?;
@@ -207,7 +207,7 @@ fn process_struct_name_reference(
let mut first_insert = vec![];
for (expr, name) in arg_list.args().zip(names) {
let range = ctx.sema.original_range_opt(expr.syntax())?.range;
- let place = cover_edit_range(source, range);
+ let place = cover_edit_range(source.syntax(), range);
let elements = vec![
make.name_ref(&name.text()).syntax().clone().into(),
make.token(T![:]).into(),
@@ -236,7 +236,7 @@ fn process_delimiter(
first_insert: Vec<syntax::SyntaxElement>,
) {
let Some(range) = ctx.sema.original_range_opt(list.syntax()) else { return };
- let place = cover_edit_range(source, range.range);
+ let place = cover_edit_range(source.syntax(), range.range);
let l_paren = match place.start() {
syntax::NodeOrToken::Node(node) => node.first_token(),
@@ -290,7 +290,7 @@ fn edit_field_references(
&& let Some(original) = ctx.sema.original_range_opt(name_ref.syntax())
{
editor.replace_all(
- cover_edit_range(&source, original.range),
+ cover_edit_range(source.syntax(), original.range),
vec![name.syntax().clone().into()],
);
}
diff --git a/crates/ide-assists/src/handlers/destructure_struct_binding.rs b/crates/ide-assists/src/handlers/destructure_struct_binding.rs
index 3f42696fa3..ec4a83b642 100644
--- a/crates/ide-assists/src/handlers/destructure_struct_binding.rs
+++ b/crates/ide-assists/src/handlers/destructure_struct_binding.rs
@@ -358,7 +358,7 @@ fn update_usages(
data: &StructEditData,
field_names: &FxHashMap<SmolStr, SmolStr>,
) {
- let source = ctx.source_file();
+ let source = ctx.source_file().syntax();
let make = SyntaxFactory::with_mappings();
let edits = data
.usages
diff --git a/crates/ide-assists/src/handlers/destructure_tuple_binding.rs b/crates/ide-assists/src/handlers/destructure_tuple_binding.rs
index 583ba42bf5..23c11b258c 100644
--- a/crates/ide-assists/src/handlers/destructure_tuple_binding.rs
+++ b/crates/ide-assists/src/handlers/destructure_tuple_binding.rs
@@ -326,7 +326,7 @@ impl EditTupleUsage {
}
EditTupleUsage::ReplaceExpr(target_expr, replace_with) => {
if let Some(range) = ctx.sema.original_range_opt(target_expr.syntax()) {
- let source = ctx.source_file();
+ let source = ctx.source_file().syntax();
syntax_editor.replace_all(
cover_edit_range(source, range.range),
vec![replace_with.syntax().clone().into()],
diff --git a/crates/ide-assists/src/utils.rs b/crates/ide-assists/src/utils.rs
index 0f28a20225..2f40f889fc 100644
--- a/crates/ide-assists/src/utils.rs
+++ b/crates/ide-assists/src/utils.rs
@@ -1219,10 +1219,10 @@ pub(crate) fn cover_let_chain(mut expr: ast::Expr, range: TextRange) -> Option<a
}
pub(crate) fn cover_edit_range(
- source: &impl AstNode,
+ source: &SyntaxNode,
range: TextRange,
) -> std::ops::RangeInclusive<syntax::SyntaxElement> {
- let node = match source.syntax().covering_element(range) {
+ let node = match source.covering_element(range) {
NodeOrToken::Node(node) => node,
NodeOrToken::Token(t) => t.parent().unwrap(),
};