From f2ccc54468348af96d6167da5971749ef0f4ab5e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 11 Jun 2019 17:25:55 +0300 Subject: use Source for TypeAlias --- crates/ra_hir/src/code_model.rs | 11 +++++++++-- crates/ra_hir/src/docs.rs | 2 +- crates/ra_hir/src/generics.rs | 2 +- crates/ra_hir/src/type_alias.rs | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) (limited to 'crates/ra_hir/src') diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index a8a0875e0..20a8d7d80 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs @@ -932,12 +932,19 @@ pub struct TypeAlias { pub(crate) id: TypeAliasId, } +impl HasSource for TypeAlias { + type Ast = TreeArc; + fn source(self, db: &(impl DefDatabase + AstDatabase)) -> Source> { + self.id.source(db).into() + } +} + impl TypeAlias { pub fn source( self, db: &(impl DefDatabase + AstDatabase), - ) -> (HirFileId, TreeArc) { - self.id.source(db) + ) -> Source> { + self.id.source(db).into() } pub fn module(self, db: &impl DefDatabase) -> Module { diff --git a/crates/ra_hir/src/docs.rs b/crates/ra_hir/src/docs.rs index 86ca981f4..1c6b4f205 100644 --- a/crates/ra_hir/src/docs.rs +++ b/crates/ra_hir/src/docs.rs @@ -84,7 +84,7 @@ pub(crate) fn documentation_query( DocDef::Function(it) => docs_from_ast(&*it.source(db).ast), DocDef::Union(it) => docs_from_ast(&*it.source(db).1), DocDef::Trait(it) => docs_from_ast(&*it.source(db).1), - DocDef::TypeAlias(it) => docs_from_ast(&*it.source(db).1), + DocDef::TypeAlias(it) => docs_from_ast(&*it.source(db).ast), DocDef::MacroDef(it) => docs_from_ast(&*it.source(db).1), } } diff --git a/crates/ra_hir/src/generics.rs b/crates/ra_hir/src/generics.rs index fcccd67c8..b7e255c17 100644 --- a/crates/ra_hir/src/generics.rs +++ b/crates/ra_hir/src/generics.rs @@ -81,7 +81,7 @@ impl GenericParams { }); generics.fill(&*it.source(db).1, start + 1); } - GenericDef::TypeAlias(it) => generics.fill(&*it.source(db).1, start), + GenericDef::TypeAlias(it) => generics.fill(&*it.source(db).ast, start), GenericDef::ImplBlock(it) => generics.fill(&*it.source(db).1, start), } diff --git a/crates/ra_hir/src/type_alias.rs b/crates/ra_hir/src/type_alias.rs index 970468e3c..c449d7346 100644 --- a/crates/ra_hir/src/type_alias.rs +++ b/crates/ra_hir/src/type_alias.rs @@ -8,6 +8,6 @@ pub(crate) fn type_alias_ref_query( db: &(impl DefDatabase + AstDatabase), typ: TypeAlias, ) -> Arc { - let (_, node) = typ.source(db); + let node = typ.source(db).ast; Arc::new(TypeRef::from_ast_opt(node.type_ref())) } -- cgit v1.2.3