internal: normalize name

All def types in hir are unsubstituted
This commit is contained in:
Aleksey Kladov 2021-04-30 11:52:31 +03:00
parent 49b219b103
commit cb3ef552e8
5 changed files with 6 additions and 6 deletions

View File

@ -170,7 +170,7 @@ impl HirDisplay for Field {
fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
write_visibility(self.parent.module(f.db).id, self.visibility(f.db), f)?; write_visibility(self.parent.module(f.db).id, self.visibility(f.db), f)?;
write!(f, "{}: ", self.name(f.db))?; write!(f, "{}: ", self.name(f.db))?;
self.signature_ty(f.db).hir_fmt(f) self.ty(f.db).hir_fmt(f)
} }
} }

View File

@ -509,7 +509,7 @@ pub fn name(&self, db: &dyn HirDatabase) -> Name {
/// placeholder types for type parameters). This is good for showing /// placeholder types for type parameters). This is good for showing
/// signature help, but not so good to actually get the type of the field /// signature help, but not so good to actually get the type of the field
/// when you actually have a variable of the struct. /// when you actually have a variable of the struct.
pub fn signature_ty(&self, db: &dyn HirDatabase) -> Type { pub fn ty(&self, db: &dyn HirDatabase) -> Type {
let var_id = self.parent.into(); let var_id = self.parent.into();
let generic_def_id: GenericDefId = match self.parent { let generic_def_id: GenericDefId = match self.parent {
VariantDef::Struct(it) => it.id.into(), VariantDef::Struct(it) => it.id.into(),

View File

@ -91,7 +91,7 @@ fn existing_from_impl(
let enum_type = enum_.ty(sema.db); let enum_type = enum_.ty(sema.db);
let wrapped_type = variant.fields(sema.db).get(0)?.signature_ty(sema.db); let wrapped_type = variant.fields(sema.db).get(0)?.ty(sema.db);
if enum_type.impls_trait(sema.db, from_trait, &[wrapped_type]) { if enum_type.impls_trait(sema.db, from_trait, &[wrapped_type]) {
Some(()) Some(())

View File

@ -347,7 +347,7 @@ fn fill(
.and_then(|node| ast::RecordExprField::cast(node)) .and_then(|node| ast::RecordExprField::cast(node))
.and_then(|rf| self.sema.resolve_record_field(&rf).zip(Some(rf))) .and_then(|rf| self.sema.resolve_record_field(&rf).zip(Some(rf)))
.map(|(f, rf)|( .map(|(f, rf)|(
Some(f.0.signature_ty(self.db)), Some(f.0.ty(self.db)),
rf.field_name().map(NameOrNameRef::NameRef), rf.field_name().map(NameOrNameRef::NameRef),
)) ))
.unwrap_or((None, None)) .unwrap_or((None, None))
@ -357,7 +357,7 @@ fn fill(
self.sema self.sema
.resolve_record_field(&it) .resolve_record_field(&it)
.map(|f|( .map(|f|(
Some(f.0.signature_ty(self.db)), Some(f.0.ty(self.db)),
it.field_name().map(NameOrNameRef::NameRef), it.field_name().map(NameOrNameRef::NameRef),
)) ))
.unwrap_or((None, None)) .unwrap_or((None, None))

View File

@ -93,7 +93,7 @@ fn detail(&self) -> String {
.variant .variant
.fields(self.ctx.db()) .fields(self.ctx.db())
.into_iter() .into_iter()
.map(|field| (field.name(self.ctx.db()), field.signature_ty(self.ctx.db()))); .map(|field| (field.name(self.ctx.db()), field.ty(self.ctx.db())));
match self.variant_kind { match self.variant_kind {
StructKind::Tuple | StructKind::Unit => format!( StructKind::Tuple | StructKind::Unit => format!(