internal: normalize name
All def types in hir are unsubstituted
This commit is contained in:
parent
49b219b103
commit
cb3ef552e8
@ -170,7 +170,7 @@ impl HirDisplay for Field {
|
||||
fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
|
||||
write_visibility(self.parent.module(f.db).id, self.visibility(f.db), f)?;
|
||||
write!(f, "{}: ", self.name(f.db))?;
|
||||
self.signature_ty(f.db).hir_fmt(f)
|
||||
self.ty(f.db).hir_fmt(f)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -509,7 +509,7 @@ pub fn name(&self, db: &dyn HirDatabase) -> Name {
|
||||
/// placeholder types for type parameters). This is good for showing
|
||||
/// signature help, but not so good to actually get the type of the field
|
||||
/// 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 generic_def_id: GenericDefId = match self.parent {
|
||||
VariantDef::Struct(it) => it.id.into(),
|
||||
|
@ -91,7 +91,7 @@ fn existing_from_impl(
|
||||
|
||||
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]) {
|
||||
Some(())
|
||||
|
@ -347,7 +347,7 @@ fn fill(
|
||||
.and_then(|node| ast::RecordExprField::cast(node))
|
||||
.and_then(|rf| self.sema.resolve_record_field(&rf).zip(Some(rf)))
|
||||
.map(|(f, rf)|(
|
||||
Some(f.0.signature_ty(self.db)),
|
||||
Some(f.0.ty(self.db)),
|
||||
rf.field_name().map(NameOrNameRef::NameRef),
|
||||
))
|
||||
.unwrap_or((None, None))
|
||||
@ -357,7 +357,7 @@ fn fill(
|
||||
self.sema
|
||||
.resolve_record_field(&it)
|
||||
.map(|f|(
|
||||
Some(f.0.signature_ty(self.db)),
|
||||
Some(f.0.ty(self.db)),
|
||||
it.field_name().map(NameOrNameRef::NameRef),
|
||||
))
|
||||
.unwrap_or((None, None))
|
||||
|
@ -93,7 +93,7 @@ fn detail(&self) -> String {
|
||||
.variant
|
||||
.fields(self.ctx.db())
|
||||
.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 {
|
||||
StructKind::Tuple | StructKind::Unit => format!(
|
||||
|
Loading…
Reference in New Issue
Block a user