aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/adt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/adt.rs')
-rw-r--r--crates/ra_hir_def/src/adt.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/crates/ra_hir_def/src/adt.rs b/crates/ra_hir_def/src/adt.rs
index ef2b20f1e..ec3d57d1a 100644
--- a/crates/ra_hir_def/src/adt.rs
+++ b/crates/ra_hir_def/src/adt.rs
@@ -11,9 +11,8 @@ use ra_arena::{map::ArenaMap, Arena};
11use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner}; 11use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner};
12 12
13use crate::{ 13use crate::{
14 db::DefDatabase, src::HasChildSource, src::HasSource, trace::Trace, type_ref::TypeRef, 14 db::DefDatabase, src::HasChildSource, src::HasSource, trace::Trace, type_ref::TypeRef, EnumId,
15 AstItemDef, EnumId, LocalEnumVariantId, LocalStructFieldId, Lookup, StructId, UnionId, 15 LocalEnumVariantId, LocalStructFieldId, Lookup, StructId, UnionId, VariantId,
16 VariantId,
17}; 16};
18 17
19/// Note that we use `StructData` for unions as well! 18/// Note that we use `StructData` for unions as well!
@@ -58,7 +57,7 @@ impl StructData {
58 Arc::new(StructData { name, variant_data }) 57 Arc::new(StructData { name, variant_data })
59 } 58 }
60 pub(crate) fn union_data_query(db: &impl DefDatabase, id: UnionId) -> Arc<StructData> { 59 pub(crate) fn union_data_query(db: &impl DefDatabase, id: UnionId) -> Arc<StructData> {
61 let src = id.source(db); 60 let src = id.lookup(db).source(db);
62 let name = src.value.name().map_or_else(Name::missing, |n| n.as_name()); 61 let name = src.value.name().map_or_else(Name::missing, |n| n.as_name());
63 let variant_data = VariantData::new( 62 let variant_data = VariantData::new(
64 src.value 63 src.value
@@ -73,7 +72,7 @@ impl StructData {
73 72
74impl EnumData { 73impl EnumData {
75 pub(crate) fn enum_data_query(db: &impl DefDatabase, e: EnumId) -> Arc<EnumData> { 74 pub(crate) fn enum_data_query(db: &impl DefDatabase, e: EnumId) -> Arc<EnumData> {
76 let src = e.source(db); 75 let src = e.lookup(db).source(db);
77 let name = src.value.name().map_or_else(Name::missing, |n| n.as_name()); 76 let name = src.value.name().map_or_else(Name::missing, |n| n.as_name());
78 let mut trace = Trace::new_for_arena(); 77 let mut trace = Trace::new_for_arena();
79 lower_enum(&mut trace, &src.value); 78 lower_enum(&mut trace, &src.value);
@@ -90,7 +89,7 @@ impl HasChildSource for EnumId {
90 type ChildId = LocalEnumVariantId; 89 type ChildId = LocalEnumVariantId;
91 type Value = ast::EnumVariant; 90 type Value = ast::EnumVariant;
92 fn child_source(&self, db: &impl DefDatabase) -> InFile<ArenaMap<Self::ChildId, Self::Value>> { 91 fn child_source(&self, db: &impl DefDatabase) -> InFile<ArenaMap<Self::ChildId, Self::Value>> {
93 let src = self.source(db); 92 let src = self.lookup(db).source(db);
94 let mut trace = Trace::new_for_map(); 93 let mut trace = Trace::new_for_map();
95 lower_enum(&mut trace, &src.value); 94 lower_enum(&mut trace, &src.value);
96 src.with_value(trace.into_map()) 95 src.with_value(trace.into_map())
@@ -155,7 +154,7 @@ impl HasChildSource for VariantId {
155 src.map(|map| map[it.local_id].kind()) 154 src.map(|map| map[it.local_id].kind())
156 } 155 }
157 VariantId::StructId(it) => it.lookup(db).source(db).map(|it| it.kind()), 156 VariantId::StructId(it) => it.lookup(db).source(db).map(|it| it.kind()),
158 VariantId::UnionId(it) => it.source(db).map(|it| { 157 VariantId::UnionId(it) => it.lookup(db).source(db).map(|it| {
159 it.record_field_def_list() 158 it.record_field_def_list()
160 .map(ast::StructKind::Record) 159 .map(ast::StructKind::Record)
161 .unwrap_or(ast::StructKind::Unit) 160 .unwrap_or(ast::StructKind::Unit)