aboutsummaryrefslogtreecommitdiff
path: root/crates/ide_completion/src/render/enum_variant.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ide_completion/src/render/enum_variant.rs')
-rw-r--r--crates/ide_completion/src/render/enum_variant.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/crates/ide_completion/src/render/enum_variant.rs b/crates/ide_completion/src/render/enum_variant.rs
index 9214193b4..e8cfcc0c7 100644
--- a/crates/ide_completion/src/render/enum_variant.rs
+++ b/crates/ide_completion/src/render/enum_variant.rs
@@ -3,7 +3,6 @@
3use hir::{HasAttrs, HirDisplay, ModPath, StructKind}; 3use hir::{HasAttrs, HirDisplay, ModPath, StructKind};
4use ide_db::SymbolKind; 4use ide_db::SymbolKind;
5use itertools::Itertools; 5use itertools::Itertools;
6use test_utils::mark;
7 6
8use crate::{ 7use crate::{
9 item::{CompletionItem, CompletionKind, ImportEdit}, 8 item::{CompletionItem, CompletionKind, ImportEdit},
@@ -56,27 +55,26 @@ impl<'a> EnumRender<'a> {
56 } 55 }
57 56
58 fn render(self, import_to_add: Option<ImportEdit>) -> CompletionItem { 57 fn render(self, import_to_add: Option<ImportEdit>) -> CompletionItem {
59 let mut builder = CompletionItem::new( 58 let mut item = CompletionItem::new(
60 CompletionKind::Reference, 59 CompletionKind::Reference,
61 self.ctx.source_range(), 60 self.ctx.source_range(),
62 self.qualified_name.clone(), 61 self.qualified_name.clone(),
63 ) 62 );
64 .kind(SymbolKind::Variant) 63 item.kind(SymbolKind::Variant)
65 .set_documentation(self.variant.docs(self.ctx.db())) 64 .set_documentation(self.variant.docs(self.ctx.db()))
66 .set_deprecated(self.ctx.is_deprecated(self.variant)) 65 .set_deprecated(self.ctx.is_deprecated(self.variant))
67 .add_import(import_to_add) 66 .add_import(import_to_add)
68 .detail(self.detail()); 67 .detail(self.detail());
69 68
70 if self.variant_kind == StructKind::Tuple { 69 if self.variant_kind == StructKind::Tuple {
71 mark::hit!(inserts_parens_for_tuple_enums); 70 cov_mark::hit!(inserts_parens_for_tuple_enums);
72 let params = Params::Anonymous(self.variant.fields(self.ctx.db()).len()); 71 let params = Params::Anonymous(self.variant.fields(self.ctx.db()).len());
73 builder = 72 item.add_call_parens(self.ctx.completion, self.short_qualified_name, params);
74 builder.add_call_parens(self.ctx.completion, self.short_qualified_name, params);
75 } else if self.path.is_some() { 73 } else if self.path.is_some() {
76 builder = builder.lookup_by(self.short_qualified_name); 74 item.lookup_by(self.short_qualified_name);
77 } 75 }
78 76
79 builder.build() 77 item.build()
80 } 78 }
81 79
82 fn detail(&self) -> String { 80 fn detail(&self) -> String {
@@ -103,13 +101,11 @@ impl<'a> EnumRender<'a> {
103 101
104#[cfg(test)] 102#[cfg(test)]
105mod tests { 103mod tests {
106 use test_utils::mark;
107
108 use crate::test_utils::check_edit; 104 use crate::test_utils::check_edit;
109 105
110 #[test] 106 #[test]
111 fn inserts_parens_for_tuple_enums() { 107 fn inserts_parens_for_tuple_enums() {
112 mark::check!(inserts_parens_for_tuple_enums); 108 cov_mark::check!(inserts_parens_for_tuple_enums);
113 check_edit( 109 check_edit(
114 "Some", 110 "Some",
115 r#" 111 r#"