Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/diagnostics/match_check.rs')
-rw-r--r--crates/hir-ty/src/diagnostics/match_check.rs35
1 files changed, 25 insertions, 10 deletions
diff --git a/crates/hir-ty/src/diagnostics/match_check.rs b/crates/hir-ty/src/diagnostics/match_check.rs
index a0ee7c0748..4bc07bc9ec 100644
--- a/crates/hir-ty/src/diagnostics/match_check.rs
+++ b/crates/hir-ty/src/diagnostics/match_check.rs
@@ -14,6 +14,7 @@ use hir_def::{
body::Body, data::adt::VariantData, hir::PatId, AdtId, EnumVariantId, LocalFieldId, VariantId,
};
use hir_expand::name::Name;
+use span::Edition;
use stdx::{always, never};
use crate::{
@@ -151,7 +152,11 @@ impl<'a> PatCtxt<'a> {
match (bm, ty.kind(Interner)) {
(BindingMode::Ref(_), TyKind::Ref(.., rty)) => ty = rty,
(BindingMode::Ref(_), _) => {
- never!("`ref {}` has wrong type {:?}", name.display(self.db.upcast()), ty);
+ never!(
+ "`ref {}` has wrong type {:?}",
+ name.display(self.db.upcast(), Edition::LATEST),
+ ty
+ );
self.errors.push(PatternError::UnexpectedType);
return Pat { ty: ty.clone(), kind: PatKind::Wild.into() };
}
@@ -297,7 +302,7 @@ impl HirDisplay for Pat {
PatKind::Wild => write!(f, "_"),
PatKind::Never => write!(f, "!"),
PatKind::Binding { name, subpattern } => {
- write!(f, "{}", name.display(f.db.upcast()))?;
+ write!(f, "{}", name.display(f.db.upcast(), f.edition()))?;
if let Some(subpattern) = subpattern {
write!(f, " @ ")?;
subpattern.hir_fmt(f)?;
@@ -317,14 +322,22 @@ impl HirDisplay for Pat {
if let Some(variant) = variant {
match variant {
VariantId::EnumVariantId(v) => {
- write!(f, "{}", f.db.enum_variant_data(v).name.display(f.db.upcast()))?;
- }
- VariantId::StructId(s) => {
- write!(f, "{}", f.db.struct_data(s).name.display(f.db.upcast()))?
- }
- VariantId::UnionId(u) => {
- write!(f, "{}", f.db.union_data(u).name.display(f.db.upcast()))?
+ write!(
+ f,
+ "{}",
+ f.db.enum_variant_data(v).name.display(f.db.upcast(), f.edition())
+ )?;
}
+ VariantId::StructId(s) => write!(
+ f,
+ "{}",
+ f.db.struct_data(s).name.display(f.db.upcast(), f.edition())
+ )?,
+ VariantId::UnionId(u) => write!(
+ f,
+ "{}",
+ f.db.union_data(u).name.display(f.db.upcast(), f.edition())
+ )?,
};
let variant_data = variant.variant_data(f.db.upcast());
@@ -341,7 +354,9 @@ impl HirDisplay for Pat {
write!(
f,
"{}: ",
- rec_fields[p.field].name.display(f.db.upcast())
+ rec_fields[p.field]
+ .name
+ .display(f.db.upcast(), f.edition())
)?;
p.pattern.hir_fmt(f)
})