about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWyatt Herkamp <wherkamp@gmail.com>2024-03-05 08:34:52 -0500
committerWyatt Herkamp <wherkamp@gmail.com>2024-03-05 08:34:52 -0500
commit6027eae51ed6825fc7f32e665df557bccbc37a93 (patch)
tree138f5ce3ffca774bd33a5e213094f8a0b9af5972
parentb45cfe15b58f60c575cc07aebb9bd4d8feba1492 (diff)
downloadrust-6027eae51ed6825fc7f32e665df557bccbc37a93.tar.gz
rust-6027eae51ed6825fc7f32e665df557bccbc37a93.zip
Fix Tests + Fix Warnings
-rw-r--r--crates/ide-diagnostics/src/handlers/unresolved_field.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/crates/ide-diagnostics/src/handlers/unresolved_field.rs b/crates/ide-diagnostics/src/handlers/unresolved_field.rs
index be78761f169..cffee7ffd4f 100644
--- a/crates/ide-diagnostics/src/handlers/unresolved_field.rs
+++ b/crates/ide-diagnostics/src/handlers/unresolved_field.rs
@@ -50,13 +50,11 @@ pub(crate) fn unresolved_field(
 }
 
 fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::UnresolvedField) -> Option<Vec<Assist>> {
-    if d.method_with_same_name_exists {
-        let mut method_fix = method_fix(ctx, &d.expr).unwrap_or_default();
-        method_fix.push(add_field_fix(ctx, d)?);
-        Some(method_fix)
-    } else {
-        Some(vec![add_field_fix(ctx, d)?])
+    let mut fixes = if d.method_with_same_name_exists { method_fix(ctx, &d.expr) } else { None };
+    if let Some(fix) = add_field_fix(ctx, d) {
+        fixes.get_or_insert_with(Vec::new).push(fix);
     }
+    fixes
 }
 
 fn add_field_fix(ctx: &DiagnosticsContext<'_>, d: &hir::UnresolvedField) -> Option<Assist> {
@@ -77,7 +75,7 @@ fn add_field_fix(ctx: &DiagnosticsContext<'_>, d: &hir::UnresolvedField) -> Opti
         if let Some(new_field_type) = ctx.sema.type_of_expr(&expr).map(|v| v.adjusted()) {
             let display =
                 new_field_type.display_source_code(ctx.sema.db, target_module.into(), true).ok();
-            make::ty(display.as_deref().unwrap_or_else(|| "()"))
+            make::ty(display.as_deref().unwrap_or("()"))
         } else {
             make::ty("()")
         };
@@ -106,7 +104,7 @@ fn add_field_fix(ctx: &DiagnosticsContext<'_>, d: &hir::UnresolvedField) -> Opti
         }
         None => {
             // Empty Struct. Add a field right before the closing brace
-            let indent = IndentLevel::from_node(&adt_syntax.value) + 1;
+            let indent = IndentLevel::from_node(adt_syntax.value) + 1;
             let record_field_list =
                 adt_syntax.value.children().find(|v| v.kind() == SyntaxKind::RECORD_FIELD_LIST)?;
             let offset = record_field_list.first_token().map(|f| f.text_range().end())?;