aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/traits.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/traits.rs')
-rw-r--r--crates/ra_hir_def/src/traits.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ra_hir_def/src/traits.rs b/crates/ra_hir_def/src/traits.rs
index 6e36bc0d0..228524a57 100644
--- a/crates/ra_hir_def/src/traits.rs
+++ b/crates/ra_hir_def/src/traits.rs
@@ -12,7 +12,7 @@ use rustc_hash::FxHashMap;
12 12
13use crate::{ 13use crate::{
14 db::DefDatabase2, AssocItemId, AstItemDef, ConstId, FunctionContainerId, FunctionLoc, Intern, 14 db::DefDatabase2, AssocItemId, AstItemDef, ConstId, FunctionContainerId, FunctionLoc, Intern,
15 LocationCtx, ModuleDefId, ModuleId, TraitId, TypeAliasId, 15 LocationCtx, ModuleDefId, ModuleId, TraitId, TypeAliasContainerId, TypeAliasLoc,
16}; 16};
17 17
18#[derive(Debug, Clone, PartialEq, Eq)] 18#[derive(Debug, Clone, PartialEq, Eq)]
@@ -41,7 +41,12 @@ impl TraitData {
41 .intern(db) 41 .intern(db)
42 .into(), 42 .into(),
43 ast::ImplItem::ConstDef(it) => ConstId::from_ast(ctx, &it).into(), 43 ast::ImplItem::ConstDef(it) => ConstId::from_ast(ctx, &it).into(),
44 ast::ImplItem::TypeAliasDef(it) => TypeAliasId::from_ast(ctx, &it).into(), 44 ast::ImplItem::TypeAliasDef(it) => TypeAliasLoc {
45 container: TypeAliasContainerId::TraitId(tr),
46 ast_id: AstId::new(src.file_id, ast_id_map.ast_id(&it)),
47 }
48 .intern(db)
49 .into(),
45 }) 50 })
46 .collect() 51 .collect()
47 } else { 52 } else {
@@ -65,6 +70,7 @@ impl TraitItemsIndex {
65 for item in db.trait_data(tr).items.iter() { 70 for item in db.trait_data(tr).items.iter() {
66 match item { 71 match item {
67 AssocItemId::FunctionId(_) => (), 72 AssocItemId::FunctionId(_) => (),
73 AssocItemId::TypeAliasId(_) => (),
68 _ => { 74 _ => {
69 let prev = index.traits_by_def.insert(*item, tr); 75 let prev = index.traits_by_def.insert(*item, tr);
70 assert!(prev.is_none()); 76 assert!(prev.is_none());