From: Andrew Leverette Date: Tue, 23 Nov 2021 20:41:31 +0000 (-0600) Subject: Add optimization for not allocating in case of no module path for struct literal X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=7f15537fa9e8fcda5d3dfc1f9cc0f777fc11e62a;p=rust.git Add optimization for not allocating in case of no module path for struct literal --- diff --git a/crates/ide_completion/src/render/struct_literal.rs b/crates/ide_completion/src/render/struct_literal.rs index 581b4a84ceb..bfbcc263b1d 100644 --- a/crates/ide_completion/src/render/struct_literal.rs +++ b/crates/ide_completion/src/render/struct_literal.rs @@ -56,14 +56,21 @@ fn render_literal( kind: StructKind, fields: &[hir::Field], ) -> Option { - let qualified_name = if let Some(path) = path { path.to_string() } else { name.to_string() }; + let path_string; + + let qualified_name = if let Some(path) = path { + path_string = path.to_string(); + &path_string + } else { + name + }; let mut literal = match kind { StructKind::Tuple if ctx.snippet_cap().is_some() => { - render_tuple_as_literal(fields, &qualified_name) + render_tuple_as_literal(fields, qualified_name) } StructKind::Record => { - render_record_as_literal(ctx.db(), ctx.snippet_cap(), fields, &qualified_name) + render_record_as_literal(ctx.db(), ctx.snippet_cap(), fields, qualified_name) } _ => return None, };