From db335a1bbf1d1bea2c761f67efb4b49831738e31 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 5 Jan 2021 10:34:03 +0200 Subject: Add flyimport completion for trait assoc items --- crates/hir/src/code_model.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'crates/hir/src') diff --git a/crates/hir/src/code_model.rs b/crates/hir/src/code_model.rs index 6cbf5cecf..2950f08b8 100644 --- a/crates/hir/src/code_model.rs +++ b/crates/hir/src/code_model.rs @@ -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 { + 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 { + match self.container(db) { + AssocItemContainer::Trait(t) => Some(t), + _ => None, + } + } } impl HasVisibility for AssocItem { -- cgit v1.2.3