Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/render/pattern.rs')
-rw-r--r--crates/ide_completion/src/render/pattern.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/crates/ide_completion/src/render/pattern.rs b/crates/ide_completion/src/render/pattern.rs
index b703280620..e553ec8f86 100644
--- a/crates/ide_completion/src/render/pattern.rs
+++ b/crates/ide_completion/src/render/pattern.rs
@@ -3,6 +3,7 @@
use hir::{db::HirDatabase, HasAttrs, HasVisibility, Name, StructKind};
use ide_db::helpers::SnippetCap;
use itertools::Itertools;
+use syntax::SmolStr;
use crate::{
context::{ParamKind, PatternContext},
@@ -25,7 +26,7 @@ pub(crate) fn render_struct_pat(
return None;
}
- let name = local_name.unwrap_or_else(|| strukt.name(ctx.db())).to_string();
+ let name = local_name.unwrap_or_else(|| strukt.name(ctx.db())).to_smol_str();
let pat = render_pat(&ctx, &name, strukt.kind(ctx.db()), &visible_fields, fields_omitted)?;
Some(build_completion(ctx, name, pat, strukt))
@@ -43,8 +44,8 @@ pub(crate) fn render_variant_pat(
let (visible_fields, fields_omitted) = visible_fields(&ctx, &fields, variant)?;
let name = match &path {
- Some(path) => path.to_string(),
- None => local_name.unwrap_or_else(|| variant.name(ctx.db())).to_string(),
+ Some(path) => path.to_string().into(),
+ None => local_name.unwrap_or_else(|| variant.name(ctx.db())).to_smol_str(),
};
let pat = render_pat(&ctx, &name, variant.kind(ctx.db()), &visible_fields, fields_omitted)?;
@@ -53,7 +54,7 @@ pub(crate) fn render_variant_pat(
fn build_completion(
ctx: RenderContext<'_>,
- name: String,
+ name: SmolStr,
pat: String,
def: impl HasAttrs + Copy,
) -> CompletionItem {