Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/render/variant.rs')
-rw-r--r--crates/ide-completion/src/render/variant.rs20
1 files changed, 15 insertions, 5 deletions
diff --git a/crates/ide-completion/src/render/variant.rs b/crates/ide-completion/src/render/variant.rs
index bc2df9e39f..d8516ea107 100644
--- a/crates/ide-completion/src/render/variant.rs
+++ b/crates/ide-completion/src/render/variant.rs
@@ -4,7 +4,7 @@ use crate::context::CompletionContext;
use hir::{db::HirDatabase, sym, HasAttrs, HasCrate, HasVisibility, HirDisplay, StructKind};
use ide_db::SnippetCap;
use itertools::Itertools;
-use syntax::SmolStr;
+use syntax::{Edition, SmolStr};
/// A rendered struct, union, or enum variant, split into fields for actual
/// auto-completion (`literal`, using `field: ()`) and display in the
@@ -21,20 +21,29 @@ pub(crate) fn render_record_lit(
snippet_cap: Option<SnippetCap>,
fields: &[hir::Field],
path: &str,
+ edition: Edition,
) -> RenderedLiteral {
if snippet_cap.is_none() {
return RenderedLiteral { literal: path.to_owned(), detail: path.to_owned() };
}
let completions = fields.iter().enumerate().format_with(", ", |(idx, field), f| {
if snippet_cap.is_some() {
- f(&format_args!("{}: ${{{}:()}}", field.name(db).display(db.upcast()), idx + 1))
+ f(&format_args!(
+ "{}: ${{{}:()}}",
+ field.name(db).display(db.upcast(), edition),
+ idx + 1
+ ))
} else {
- f(&format_args!("{}: ()", field.name(db).display(db.upcast())))
+ f(&format_args!("{}: ()", field.name(db).display(db.upcast(), edition)))
}
});
let types = fields.iter().format_with(", ", |field, f| {
- f(&format_args!("{}: {}", field.name(db).display(db.upcast()), field.ty(db).display(db)))
+ f(&format_args!(
+ "{}: {}",
+ field.name(db).display(db.upcast(), edition),
+ field.ty(db).display(db, edition)
+ ))
});
RenderedLiteral {
@@ -50,6 +59,7 @@ pub(crate) fn render_tuple_lit(
snippet_cap: Option<SnippetCap>,
fields: &[hir::Field],
path: &str,
+ edition: Edition,
) -> RenderedLiteral {
if snippet_cap.is_none() {
return RenderedLiteral { literal: path.to_owned(), detail: path.to_owned() };
@@ -62,7 +72,7 @@ pub(crate) fn render_tuple_lit(
}
});
- let types = fields.iter().format_with(", ", |field, f| f(&field.ty(db).display(db)));
+ let types = fields.iter().format_with(", ", |field, f| f(&field.ty(db).display(db, edition)));
RenderedLiteral {
literal: format!("{path}({completions})"),