diff options
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index 20a8d7d80..0a750b590 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -528,6 +528,13 @@ pub struct EnumVariant { | |||
528 | pub(crate) id: EnumVariantId, | 528 | pub(crate) id: EnumVariantId, |
529 | } | 529 | } |
530 | 530 | ||
531 | impl HasSource for EnumVariant { | ||
532 | type Ast = TreeArc<ast::EnumVariant>; | ||
533 | fn source(self, db: &(impl DefDatabase + AstDatabase)) -> Source<TreeArc<ast::EnumVariant>> { | ||
534 | self.source_impl(db) | ||
535 | } | ||
536 | } | ||
537 | |||
531 | impl EnumVariant { | 538 | impl EnumVariant { |
532 | pub fn source( | 539 | pub fn source( |
533 | &self, | 540 | &self, |
@@ -886,12 +893,16 @@ pub struct Trait { | |||
886 | pub(crate) id: TraitId, | 893 | pub(crate) id: TraitId, |
887 | } | 894 | } |
888 | 895 | ||
896 | impl HasSource for Trait { | ||
897 | type Ast = TreeArc<ast::TraitDef>; | ||
898 | fn source(self, db: &(impl DefDatabase + AstDatabase)) -> Source<TreeArc<ast::TraitDef>> { | ||
899 | self.id.source(db).into() | ||
900 | } | ||
901 | } | ||
902 | |||
889 | impl Trait { | 903 | impl Trait { |
890 | pub fn source( | 904 | pub fn source(self, db: &(impl DefDatabase + AstDatabase)) -> Source<TreeArc<ast::TraitDef>> { |
891 | self, | 905 | self.id.source(db).into() |
892 | db: &(impl DefDatabase + AstDatabase), | ||
893 | ) -> (HirFileId, TreeArc<ast::TraitDef>) { | ||
894 | self.id.source(db) | ||
895 | } | 906 | } |
896 | 907 | ||
897 | pub fn module(self, db: &impl DefDatabase) -> Module { | 908 | pub fn module(self, db: &impl DefDatabase) -> Module { |