From e0b01f34bb994ca8959f3040dbacafc6c56e4778 Mon Sep 17 00:00:00 2001 From: rainy-me Date: Tue, 18 May 2021 08:11:07 +0900 Subject: Add pub mod option for UnlinkedFile --- crates/ide/src/diagnostics/fixes/create_field.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'crates/ide/src/diagnostics/fixes/create_field.rs') diff --git a/crates/ide/src/diagnostics/fixes/create_field.rs b/crates/ide/src/diagnostics/fixes/create_field.rs index 24e0fda52..a5f457dce 100644 --- a/crates/ide/src/diagnostics/fixes/create_field.rs +++ b/crates/ide/src/diagnostics/fixes/create_field.rs @@ -7,18 +7,17 @@ use syntax::{ use text_edit::TextEdit; use crate::{ - diagnostics::{fix, DiagnosticWithFix}, + diagnostics::{fix, DiagnosticWithFixes}, Assist, AssistResolveStrategy, }; - -impl DiagnosticWithFix for NoSuchField { - fn fix( +impl DiagnosticWithFixes for NoSuchField { + fn fixes( &self, sema: &Semantics, _resolve: &AssistResolveStrategy, - ) -> Option { + ) -> Option> { let root = sema.db.parse_or_expand(self.file)?; - missing_record_expr_field_fix( + missing_record_expr_field_fixes( &sema, self.file.original_file(sema.db), &self.field.to_node(&root), @@ -26,11 +25,11 @@ impl DiagnosticWithFix for NoSuchField { } } -fn missing_record_expr_field_fix( +fn missing_record_expr_field_fixes( sema: &Semantics, usage_file_id: FileId, record_expr_field: &ast::RecordExprField, -) -> Option { +) -> Option> { let record_lit = ast::RecordExpr::cast(record_expr_field.syntax().parent()?.parent()?)?; let def_id = sema.resolve_variant(record_lit)?; let module; @@ -89,12 +88,12 @@ fn missing_record_expr_field_fix( TextEdit::insert(last_field_syntax.text_range().end(), new_field), ); - return Some(fix( + return Some(vec![fix( "create_field", "Create field", source_change, record_expr_field.syntax().text_range(), - )); + )]); fn record_field_list(field_def_list: ast::FieldList) -> Option { match field_def_list { -- cgit v1.2.3