aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/from_source.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/from_source.rs')
-rw-r--r--crates/ra_hir/src/from_source.rs6
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 {
44impl FromSource for Trait { 44impl 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}
51impl FromSource for Function { 53impl FromSource for Function {