From 958862093e83083b188427246323047a2c9e7bab Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 23 Nov 2019 14:43:38 +0300 Subject: Move docs to hir_def --- crates/ra_hir/src/code_model.rs | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'crates/ra_hir/src/code_model.rs') diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index 496b4ee8a..4b3ec5457 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs @@ -1,7 +1,6 @@ //! FIXME: write short doc here pub(crate) mod src; -pub(crate) mod docs; use std::sync::Arc; @@ -9,11 +8,12 @@ use hir_def::{ adt::VariantData, body::scope::ExprScopes, builtin_type::BuiltinType, + docs::Documentation, nameres::per_ns::PerNs, resolver::{HasResolver, TypeNs}, type_ref::TypeRef, - AdtId, ContainerId, CrateModuleId, EnumVariantId, HasModule, ImplId, LocalEnumVariantId, - LocalStructFieldId, Lookup, ModuleId, StructFieldId, UnionId, + ContainerId, CrateModuleId, HasModule, ImplId, LocalEnumVariantId, LocalStructFieldId, Lookup, + ModuleId, UnionId, }; use hir_expand::{ diagnostics::DiagnosticSink, @@ -1024,18 +1024,17 @@ pub trait HasAttrs { impl> HasAttrs for T { fn attrs(self, db: &impl DefDatabase) -> Attrs { - let def = self.into(); - match def { - AttrDef::Module(it) => db.attrs(it.id.into()), - AttrDef::StructField(it) => db.attrs(StructFieldId::from(it).into()), - AttrDef::Adt(it) => db.attrs(AdtId::from(it).into()), - AttrDef::Function(it) => db.attrs(it.id.into()), - AttrDef::EnumVariant(it) => db.attrs(EnumVariantId::from(it).into()), - AttrDef::Static(it) => db.attrs(it.id.into()), - AttrDef::Const(it) => db.attrs(it.id.into()), - AttrDef::Trait(it) => db.attrs(it.id.into()), - AttrDef::TypeAlias(it) => db.attrs(it.id.into()), - AttrDef::MacroDef(it) => db.attrs(it.id.into()), - } + let def: AttrDef = self.into(); + db.attrs(def.into()) + } +} + +pub trait Docs { + fn docs(&self, db: &impl HirDatabase) -> Option; +} +impl + Copy> Docs for T { + fn docs(&self, db: &impl HirDatabase) -> Option { + let def: AttrDef = (*self).into(); + db.documentation(def.into()) } } -- cgit v1.2.3