]> git.lizzy.rs Git - rust.git/blobdiff - crates/ide_completion/src/render/const_.rs
Replace some String usages with SmolStr in completions
[rust.git] / crates / ide_completion / src / render / const_.rs
index 0a17d8023d86846bf996e521e22e3e0c56ba52d0..707b6533b5423e6a6556c5a07d377da56e97c2e9 100644 (file)
@@ -2,20 +2,11 @@
 
 use hir::{AsAssocItem, HasSource};
 use ide_db::SymbolKind;
-use syntax::{
-    ast::{Const, NameOwner},
-    display::const_label,
-};
+use syntax::{ast::Const, display::const_label};
 
-use crate::{
-    item::{CompletionItem, CompletionKind},
-    render::RenderContext,
-};
+use crate::{item::CompletionItem, render::RenderContext};
 
-pub(crate) fn render_const<'a>(
-    ctx: RenderContext<'a>,
-    const_: hir::Const,
-) -> Option<CompletionItem> {
+pub(crate) fn render_const(ctx: RenderContext<'_>, const_: hir::Const) -> Option<CompletionItem> {
     ConstRender::new(ctx, const_)?.render()
 }
 
@@ -33,13 +24,12 @@ fn new(ctx: RenderContext<'a>, const_: hir::Const) -> Option<ConstRender<'a>> {
     }
 
     fn render(self) -> Option<CompletionItem> {
-        let name = self.name()?;
+        let name = self.const_.name(self.ctx.db())?.to_smol_str();
         let detail = self.detail();
 
         let mut item =
-            CompletionItem::new(CompletionKind::Reference, self.ctx.source_range(), name.clone());
-        item.kind(SymbolKind::Const)
-            .set_documentation(self.ctx.docs(self.const_))
+            CompletionItem::new(SymbolKind::Const, self.ctx.source_range(), name.clone());
+        item.set_documentation(self.ctx.docs(self.const_))
             .set_deprecated(
                 self.ctx.is_deprecated(self.const_)
                     || self.ctx.is_deprecated_assoc_item(self.const_),
@@ -49,18 +39,14 @@ fn render(self) -> Option<CompletionItem> {
         let db = self.ctx.db();
         if let Some(actm) = self.const_.as_assoc_item(db) {
             if let Some(trt) = actm.containing_trait_or_trait_impl(db) {
-                item.trait_name(trt.name(db).to_string());
-                item.insert_text(name.clone());
+                item.trait_name(trt.name(db).to_smol_str());
+                item.insert_text(name);
             }
         }
 
         Some(item.build())
     }
 
-    fn name(&self) -> Option<String> {
-        self.ast_node.name().map(|name| name.text().to_string())
-    }
-
     fn detail(&self) -> String {
         const_label(&self.ast_node)
     }