diff options
Diffstat (limited to 'crates/ide/src/diagnostics/fixes.rs')
-rw-r--r-- | crates/ide/src/diagnostics/fixes.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/ide/src/diagnostics/fixes.rs b/crates/ide/src/diagnostics/fixes.rs index 15821500f..695b59e27 100644 --- a/crates/ide/src/diagnostics/fixes.rs +++ b/crates/ide/src/diagnostics/fixes.rs | |||
@@ -100,11 +100,12 @@ impl DiagnosticWithFix for MissingFields { | |||
100 | let root = sema.db.parse_or_expand(self.file)?; | 100 | let root = sema.db.parse_or_expand(self.file)?; |
101 | let field_list_parent = self.field_list_parent.to_node(&root); | 101 | let field_list_parent = self.field_list_parent.to_node(&root); |
102 | let old_field_list = field_list_parent.record_expr_field_list()?; | 102 | let old_field_list = field_list_parent.record_expr_field_list()?; |
103 | let mut new_field_list = old_field_list.clone(); | 103 | let new_field_list = old_field_list.clone_for_update(); |
104 | for f in self.missed_fields.iter() { | 104 | for f in self.missed_fields.iter() { |
105 | let field = | 105 | let field = |
106 | make::record_expr_field(make::name_ref(&f.to_string()), Some(make::expr_unit())); | 106 | make::record_expr_field(make::name_ref(&f.to_string()), Some(make::expr_unit())) |
107 | new_field_list = new_field_list.append_field(&field); | 107 | .clone_for_update(); |
108 | new_field_list.add_field(field); | ||
108 | } | 109 | } |
109 | 110 | ||
110 | let edit = { | 111 | let edit = { |