Store names in TraitData

This commit is contained in:
Aleksey Kladov 2019-11-26 17:12:16 +03:00
parent 4a0792362e
commit 9bc8f1f4f8
3 changed files with 43 additions and 25 deletions

View file

@ -737,14 +737,11 @@ impl Trait {
}
pub fn items(self, db: &impl DefDatabase) -> Vec<AssocItem> {
db.trait_data(self.id).items.iter().map(|it| (*it).into()).collect()
db.trait_data(self.id).items.iter().map(|(_name, it)| (*it).into()).collect()
}
pub fn associated_type_by_name(self, db: &impl DefDatabase, name: &Name) -> Option<TypeAlias> {
let trait_data = db.trait_data(self.id);
let res =
trait_data.associated_types().map(TypeAlias::from).find(|t| &t.name(db) == name)?;
Some(res)
db.trait_data(self.id).associated_type_by_name(name).map(TypeAlias::from)
}
pub fn associated_type_by_name_including_super_traits(