Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs')
-rw-r--r--crates/ide-assists/src/handlers/convert_tuple_struct_to_named_struct.rs10
1 files changed, 6 insertions, 4 deletions
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 ae41e6c015..51bdca449c 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
@@ -103,11 +103,13 @@ fn edit_struct_def(
names: Vec<ast::Name>,
) {
let record_fields = tuple_fields.fields().zip(names).filter_map(|(f, name)| {
- let field = ast::make::record_field(f.visibility(), name, f.ty()?);
- let mut field_editor = SyntaxEditor::new(field.syntax().clone());
+ let (mut field_editor, field) = SyntaxEditor::new(
+ ast::make::record_field(f.visibility(), name, f.ty()?).syntax().clone(),
+ );
+ let field = ast::RecordField::cast(field).unwrap();
field_editor.insert_all(
Position::first_child_of(field.syntax()),
- f.attrs().map(|attr| attr.syntax().clone_subtree().clone_for_update().into()).collect(),
+ f.attrs().map(|attr| attr.syntax().clone().into()).collect(),
);
ast::RecordField::cast(field_editor.finish().new_root().clone())
});
@@ -120,7 +122,7 @@ fn edit_struct_def(
editor.delete(w.syntax());
let mut insert_element = Vec::new();
insert_element.push(ast::make::tokens::single_newline().syntax_element());
- insert_element.push(w.syntax().clone_for_update().syntax_element());
+ insert_element.push(w.syntax().syntax_element());
if w.syntax().last_token().is_none_or(|t| t.kind() != SyntaxKind::COMMA) {
insert_element.push(ast::make::token(T![,]).into());
}