diff options
Diffstat (limited to 'crates/ide/src/diagnostics/fixes.rs')
-rw-r--r-- | crates/ide/src/diagnostics/fixes.rs | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/crates/ide/src/diagnostics/fixes.rs b/crates/ide/src/diagnostics/fixes.rs index d7ad88ed5..e4335119b 100644 --- a/crates/ide/src/diagnostics/fixes.rs +++ b/crates/ide/src/diagnostics/fixes.rs | |||
@@ -8,9 +8,9 @@ use hir::{ | |||
8 | }, | 8 | }, |
9 | HasSource, HirDisplay, InFile, Semantics, VariantDef, | 9 | HasSource, HirDisplay, InFile, Semantics, VariantDef, |
10 | }; | 10 | }; |
11 | use ide_db::base_db::{AnchoredPathBuf, FileId}; | ||
12 | use ide_db::{ | 11 | use ide_db::{ |
13 | source_change::{FileSystemEdit, SourceFileEdit}, | 12 | base_db::{AnchoredPathBuf, FileId}, |
13 | source_change::{FileSystemEdit, SourceChange}, | ||
14 | RootDatabase, | 14 | RootDatabase, |
15 | }; | 15 | }; |
16 | use syntax::{ | 16 | use syntax::{ |
@@ -88,7 +88,7 @@ impl DiagnosticWithFix for MissingFields { | |||
88 | }; | 88 | }; |
89 | Some(Fix::new( | 89 | Some(Fix::new( |
90 | "Fill struct fields", | 90 | "Fill struct fields", |
91 | SourceFileEdit { file_id: self.file.original_file(sema.db), edit }.into(), | 91 | SourceChange::from_text_edit(self.file.original_file(sema.db), edit), |
92 | sema.original_range(&field_list_parent.syntax()).range, | 92 | sema.original_range(&field_list_parent.syntax()).range, |
93 | )) | 93 | )) |
94 | } | 94 | } |
@@ -101,8 +101,7 @@ impl DiagnosticWithFix for MissingOkOrSomeInTailExpr { | |||
101 | let tail_expr_range = tail_expr.syntax().text_range(); | 101 | let tail_expr_range = tail_expr.syntax().text_range(); |
102 | let replacement = format!("{}({})", self.required, tail_expr.syntax()); | 102 | let replacement = format!("{}({})", self.required, tail_expr.syntax()); |
103 | let edit = TextEdit::replace(tail_expr_range, replacement); | 103 | let edit = TextEdit::replace(tail_expr_range, replacement); |
104 | let source_change = | 104 | let source_change = SourceChange::from_text_edit(self.file.original_file(sema.db), edit); |
105 | SourceFileEdit { file_id: self.file.original_file(sema.db), edit }.into(); | ||
106 | let name = if self.required == "Ok" { "Wrap with Ok" } else { "Wrap with Some" }; | 105 | let name = if self.required == "Ok" { "Wrap with Ok" } else { "Wrap with Some" }; |
107 | Some(Fix::new(name, source_change, tail_expr_range)) | 106 | Some(Fix::new(name, source_change, tail_expr_range)) |
108 | } | 107 | } |
@@ -122,8 +121,7 @@ impl DiagnosticWithFix for RemoveThisSemicolon { | |||
122 | .text_range(); | 121 | .text_range(); |
123 | 122 | ||
124 | let edit = TextEdit::delete(semicolon); | 123 | let edit = TextEdit::delete(semicolon); |
125 | let source_change = | 124 | let source_change = SourceChange::from_text_edit(self.file.original_file(sema.db), edit); |
126 | SourceFileEdit { file_id: self.file.original_file(sema.db), edit }.into(); | ||
127 | 125 | ||
128 | Some(Fix::new("Remove this semicolon", source_change, semicolon)) | 126 | Some(Fix::new("Remove this semicolon", source_change, semicolon)) |
129 | } | 127 | } |
@@ -204,15 +202,11 @@ fn missing_record_expr_field_fix( | |||
204 | new_field = format!(",{}", new_field); | 202 | new_field = format!(",{}", new_field); |
205 | } | 203 | } |
206 | 204 | ||
207 | let source_change = SourceFileEdit { | 205 | let source_change = SourceChange::from_text_edit( |
208 | file_id: def_file_id, | 206 | def_file_id, |
209 | edit: TextEdit::insert(last_field_syntax.text_range().end(), new_field), | 207 | TextEdit::insert(last_field_syntax.text_range().end(), new_field), |
210 | }; | 208 | ); |
211 | return Some(Fix::new( | 209 | return Some(Fix::new("Create field", source_change, record_expr_field.syntax().text_range())); |
212 | "Create field", | ||
213 | source_change.into(), | ||
214 | record_expr_field.syntax().text_range(), | ||
215 | )); | ||
216 | 210 | ||
217 | fn record_field_list(field_def_list: ast::FieldList) -> Option<ast::RecordFieldList> { | 211 | fn record_field_list(field_def_list: ast::FieldList) -> Option<ast::RecordFieldList> { |
218 | match field_def_list { | 212 | match field_def_list { |