Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/render/literal.rs')
| -rw-r--r-- | crates/ide_completion/src/render/literal.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/crates/ide_completion/src/render/literal.rs b/crates/ide_completion/src/render/literal.rs index d91e80f90c..e65631712e 100644 --- a/crates/ide_completion/src/render/literal.rs +++ b/crates/ide_completion/src/render/literal.rs @@ -49,12 +49,12 @@ fn render( name: hir::Name, path: Option<hir::ModPath>, ) -> Option<CompletionItem> { - if let Some(PathCompletionCtx { has_call_parens: true, .. }) = completion.path_context { - return None; - } let db = completion.db; - let fields = thing.fields(completion)?; + let kind = thing.kind(db); + let has_call_parens = + matches!(completion.path_context, Some(PathCompletionCtx { has_call_parens: true, .. })); + let fields = thing.fields(completion)?; let (qualified_name, short_qualified_name, qualified) = match path { Some(path) => { let short = hir::ModPath::from_segments( @@ -68,13 +68,14 @@ fn render( let qualified_name = qualified_name.to_string(); let snippet_cap = ctx.snippet_cap(); - let kind = thing.kind(db); let mut rendered = match kind { - StructKind::Tuple => render_tuple_lit(db, snippet_cap, &fields, &qualified_name), - StructKind::Record => render_record_lit(db, snippet_cap, &fields, &qualified_name), - StructKind::Unit => { - RenderedLiteral { literal: qualified_name.clone(), detail: qualified_name.clone() } + StructKind::Tuple if !has_call_parens => { + render_tuple_lit(db, snippet_cap, &fields, &qualified_name) + } + StructKind::Record if !has_call_parens => { + render_record_lit(db, snippet_cap, &fields, &qualified_name) } + _ => RenderedLiteral { literal: qualified_name.clone(), detail: qualified_name.clone() }, }; if snippet_cap.is_some() { |