Add flyimport completion for trait assoc items

This commit is contained in:
Kirill Bulatov 2021-01-05 10:34:03 +02:00
parent 9a349f280f
commit db335a1bbf
18 changed files with 661 additions and 247 deletions

View file

@ -272,6 +272,15 @@ impl ModuleDef {
hir_ty::diagnostics::validate_module_item(db, module.id.krate, id, sink)
}
pub fn as_assoc_item(self, db: &dyn HirDatabase) -> Option<AssocItem> {
match self {
ModuleDef::Function(f) => f.as_assoc_item(db),
ModuleDef::Const(c) => c.as_assoc_item(db),
ModuleDef::TypeAlias(t) => t.as_assoc_item(db),
_ => None,
}
}
}
impl Module {
@ -1091,6 +1100,13 @@ impl AssocItem {
AssocContainerId::ContainerId(_) => panic!("invalid AssocItem"),
}
}
pub fn containing_trait(self, db: &dyn HirDatabase) -> Option<Trait> {
match self.container(db) {
AssocItemContainer::Trait(t) => Some(t),
_ => None,
}
}
}
impl HasVisibility for AssocItem {