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.rs | 9 |
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 { |