From b45dd9ef54c668b714c6fc41bc42d415ed772f32 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 25 Aug 2020 12:13:31 +0200 Subject: Use the same abstraction for attrs and docs Doc comments *are* attributes, so there's no reason to have two crates here. --- crates/hir/src/code_model.rs | 11 +++-------- crates/hir/src/lib.rs | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'crates/hir/src') diff --git a/crates/hir/src/code_model.rs b/crates/hir/src/code_model.rs index 94dd7f6f5..e553fc7dc 100644 --- a/crates/hir/src/code_model.rs +++ b/crates/hir/src/code_model.rs @@ -1771,6 +1771,7 @@ impl_from!( pub trait HasAttrs { fn attrs(self, db: &dyn HirDatabase) -> Attrs; + fn docs(self, db: &dyn HirDatabase) -> Option; } impl> HasAttrs for T { @@ -1778,14 +1779,8 @@ impl> HasAttrs for T { let def: AttrDef = self.into(); db.attrs(def.into()) } -} - -pub trait Docs { - fn docs(&self, db: &dyn HirDatabase) -> Option; -} -impl + Copy> Docs for T { - fn docs(&self, db: &dyn HirDatabase) -> Option { - let def: AttrDef = (*self).into(); + fn docs(self, db: &dyn HirDatabase) -> Option { + let def: AttrDef = self.into(); db.documentation(def.into()) } } diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index d1f4d7813..2326e3fbb 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -34,7 +34,7 @@ mod has_source; pub use crate::{ code_model::{ Access, Adt, AsAssocItem, AssocItem, AssocItemContainer, AttrDef, Callable, CallableKind, - Const, Crate, CrateDependency, DefWithBody, Docs, Enum, EnumVariant, Field, FieldSource, + Const, Crate, CrateDependency, DefWithBody, Enum, EnumVariant, Field, FieldSource, Function, GenericDef, HasAttrs, HasVisibility, ImplDef, Local, MacroDef, Module, ModuleDef, ScopeDef, Static, Struct, Trait, Type, TypeAlias, TypeParam, Union, VariantDef, Visibility, }, -- cgit v1.2.3