diff options
| author | Wyatt Herkamp <wherkamp@gmail.com> | 2024-03-05 08:34:52 -0500 |
|---|---|---|
| committer | Wyatt Herkamp <wherkamp@gmail.com> | 2024-03-05 08:34:52 -0500 |
| commit | 6027eae51ed6825fc7f32e665df557bccbc37a93 (patch) | |
| tree | 138f5ce3ffca774bd33a5e213094f8a0b9af5972 | |
| parent | b45cfe15b58f60c575cc07aebb9bd4d8feba1492 (diff) | |
| download | rust-6027eae51ed6825fc7f32e665df557bccbc37a93.tar.gz rust-6027eae51ed6825fc7f32e665df557bccbc37a93.zip | |
Fix Tests + Fix Warnings
| -rw-r--r-- | crates/ide-diagnostics/src/handlers/unresolved_field.rs | 14 |
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())?; |
