diff options
Diffstat (limited to 'crates/ra_hir/src/from_source.rs')
-rw-r--r-- | crates/ra_hir/src/from_source.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/ra_hir/src/from_source.rs b/crates/ra_hir/src/from_source.rs index b35188a21..0cf4bcae1 100644 --- a/crates/ra_hir/src/from_source.rs +++ b/crates/ra_hir/src/from_source.rs | |||
@@ -44,8 +44,10 @@ impl FromSource for Enum { | |||
44 | impl FromSource for Trait { | 44 | impl FromSource for Trait { |
45 | type Ast = ast::TraitDef; | 45 | type Ast = ast::TraitDef; |
46 | fn from_source(db: &(impl DefDatabase + AstDatabase), src: InFile<Self::Ast>) -> Option<Self> { | 46 | fn from_source(db: &(impl DefDatabase + AstDatabase), src: InFile<Self::Ast>) -> Option<Self> { |
47 | let id = from_source(db, src)?; | 47 | // XXX: use `.parent()` to avoid finding ourselves |
48 | Some(Trait { id }) | 48 | let parent = src.value.syntax().parent()?; |
49 | let container = Container::find(db, src.with_value(parent).as_ref())?; | ||
50 | container.child_by_source(db)[keys::TRAIT].get(&src).copied().map(Trait::from) | ||
49 | } | 51 | } |
50 | } | 52 | } |
51 | impl FromSource for Function { | 53 | impl FromSource for Function { |