Skip to content

Commit b45dd9e

Browse files
committed
Use the same abstraction for attrs and docs
Doc comments *are* attributes, so there's no reason to have two crates here.
1 parent 59c77ff commit b45dd9e

File tree

5 files changed

+7
-12
lines changed

5 files changed

+7
-12
lines changed

crates/hir/src/code_model.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1771,21 +1771,16 @@ impl_from!(
17711771

17721772
pub trait HasAttrs {
17731773
fn attrs(self, db: &dyn HirDatabase) -> Attrs;
1774+
fn docs(self, db: &dyn HirDatabase) -> Option<Documentation>;
17741775
}
17751776

17761777
impl<T: Into<AttrDef>> HasAttrs for T {
17771778
fn attrs(self, db: &dyn HirDatabase) -> Attrs {
17781779
let def: AttrDef = self.into();
17791780
db.attrs(def.into())
17801781
}
1781-
}
1782-
1783-
pub trait Docs {
1784-
fn docs(&self, db: &dyn HirDatabase) -> Option<Documentation>;
1785-
}
1786-
impl<T: Into<AttrDef> + Copy> Docs for T {
1787-
fn docs(&self, db: &dyn HirDatabase) -> Option<Documentation> {
1788-
let def: AttrDef = (*self).into();
1782+
fn docs(self, db: &dyn HirDatabase) -> Option<Documentation> {
1783+
let def: AttrDef = self.into();
17891784
db.documentation(def.into())
17901785
}
17911786
}

crates/hir/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ mod has_source;
3434
pub use crate::{
3535
code_model::{
3636
Access, Adt, AsAssocItem, AssocItem, AssocItemContainer, AttrDef, Callable, CallableKind,
37-
Const, Crate, CrateDependency, DefWithBody, Docs, Enum, EnumVariant, Field, FieldSource,
37+
Const, Crate, CrateDependency, DefWithBody, Enum, EnumVariant, Field, FieldSource,
3838
Function, GenericDef, HasAttrs, HasVisibility, ImplDef, Local, MacroDef, Module, ModuleDef,
3939
ScopeDef, Static, Struct, Trait, Type, TypeAlias, TypeParam, Union, VariantDef, Visibility,
4040
},

crates/ide/src/call_info.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! FIXME: write short doc here
22
use either::Either;
3-
use hir::{Docs, HirDisplay, Semantics, Type};
3+
use hir::{HasAttrs, HirDisplay, Semantics, Type};
44
use ide_db::RootDatabase;
55
use stdx::format_to;
66
use syntax::{

crates/ide/src/completion/complete_trait_impl.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
//! ```
3333
3434
use assists::utils::get_missing_assoc_items;
35-
use hir::{self, Docs, HasSource};
35+
use hir::{self, HasAttrs, HasSource};
3636
use syntax::{
3737
ast::{self, edit, Impl},
3838
AstNode, SyntaxKind, SyntaxNode, TextRange, T,

crates/ide/src/completion/presentation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! This modules takes care of rendering various definitions as completion items.
22
//! It also handles scoring (sorting) completions.
33
4-
use hir::{Docs, HasAttrs, HasSource, HirDisplay, ModPath, ScopeDef, StructKind, Type};
4+
use hir::{HasAttrs, HasSource, HirDisplay, ModPath, ScopeDef, StructKind, Type};
55
use itertools::Itertools;
66
use syntax::ast::NameOwner;
77
use test_utils::mark;

0 commit comments

Comments
 (0)