Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/record.rs')
| -rw-r--r-- | crates/ide-completion/src/completions/record.rs | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/crates/ide-completion/src/completions/record.rs b/crates/ide-completion/src/completions/record.rs index 1811524106..12c449bf35 100644 --- a/crates/ide-completion/src/completions/record.rs +++ b/crates/ide-completion/src/completions/record.rs @@ -6,7 +6,7 @@ use syntax::{ }; use crate::{ - context::{ExprCtx, PathCompletionCtx, PathKind, PatternContext, Qualified}, + context::{ExprCtx, PathCompletionCtx, PatternContext, Qualified}, CompletionContext, CompletionItem, CompletionItemKind, CompletionRelevance, CompletionRelevancePostfixMatch, Completions, }; @@ -20,7 +20,7 @@ pub(crate) fn complete_record_pattern_fields( complete_fields(acc, ctx, ctx.sema.record_pattern_missing_fields(record_pat)); } } -pub(crate) fn complete_record_expr_fields_record_expr( +pub(crate) fn complete_record_expr_fields( acc: &mut Completions, ctx: &CompletionContext, record_expr: &ast::RecordExpr, @@ -85,13 +85,12 @@ pub(crate) fn complete_record_expr_func_update( acc: &mut Completions, ctx: &CompletionContext, path_ctx: &PathCompletionCtx, + expr_ctx: &ExprCtx, ) { - if let PathCompletionCtx { - kind: PathKind::Expr { expr_ctx: ExprCtx { is_func_update: Some(record_expr), .. } }, - qualified: Qualified::No, - .. - } = path_ctx - { + if !matches!(path_ctx.qualified, Qualified::No) { + return; + } + if let ExprCtx { is_func_update: Some(record_expr), .. } = expr_ctx { let ty = ctx.sema.type_of_expr(&Expr::RecordExpr(record_expr.clone())); match ty.as_ref().and_then(|t| t.original.as_adt()) { |