aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/adt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r--crates/ra_hir/src/adt.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs
index 325f1d7b6..78ea8976b 100644
--- a/crates/ra_hir/src/adt.rs
+++ b/crates/ra_hir/src/adt.rs
@@ -12,7 +12,7 @@ use ra_syntax::{
12use crate::{ 12use crate::{
13 Name, AsName, Struct, Enum, EnumVariant, Crate, 13 Name, AsName, Struct, Enum, EnumVariant, Crate,
14 HirDatabase, HirFileId, StructField, FieldSource, 14 HirDatabase, HirFileId, StructField, FieldSource,
15 type_ref::TypeRef, PersistentHirDatabase, 15 type_ref::TypeRef, DefDatabase,
16}; 16};
17 17
18#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] 18#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
@@ -33,7 +33,7 @@ impl AdtDef {
33} 33}
34 34
35impl Struct { 35impl Struct {
36 pub(crate) fn variant_data(&self, db: &impl PersistentHirDatabase) -> Arc<VariantData> { 36 pub(crate) fn variant_data(&self, db: &impl DefDatabase) -> Arc<VariantData> {
37 db.struct_data((*self).into()).variant_data.clone() 37 db.struct_data((*self).into()).variant_data.clone()
38 } 38 }
39} 39}
@@ -52,10 +52,7 @@ impl StructData {
52 StructData { name, variant_data } 52 StructData { name, variant_data }
53 } 53 }
54 54
55 pub(crate) fn struct_data_query( 55 pub(crate) fn struct_data_query(db: &impl DefDatabase, struct_: Struct) -> Arc<StructData> {
56 db: &impl PersistentHirDatabase,
57 struct_: Struct,
58 ) -> Arc<StructData> {
59 let (_, struct_def) = struct_.source(db); 56 let (_, struct_def) = struct_.source(db);
60 Arc::new(StructData::new(&*struct_def)) 57 Arc::new(StructData::new(&*struct_def))
61 } 58 }
@@ -68,7 +65,7 @@ fn variants(enum_def: &ast::EnumDef) -> impl Iterator<Item = &ast::EnumVariant>
68impl EnumVariant { 65impl EnumVariant {
69 pub(crate) fn source_impl( 66 pub(crate) fn source_impl(
70 &self, 67 &self,
71 db: &impl PersistentHirDatabase, 68 db: &impl DefDatabase,
72 ) -> (HirFileId, TreeArc<ast::EnumVariant>) { 69 ) -> (HirFileId, TreeArc<ast::EnumVariant>) {
73 let (file_id, enum_def) = self.parent.source(db); 70 let (file_id, enum_def) = self.parent.source(db);
74 let var = variants(&*enum_def) 71 let var = variants(&*enum_def)
@@ -79,7 +76,7 @@ impl EnumVariant {
79 .to_owned(); 76 .to_owned();
80 (file_id, var) 77 (file_id, var)
81 } 78 }
82 pub(crate) fn variant_data(&self, db: &impl PersistentHirDatabase) -> Arc<VariantData> { 79 pub(crate) fn variant_data(&self, db: &impl DefDatabase) -> Arc<VariantData> {
83 db.enum_data(self.parent).variants[self.id].variant_data.clone() 80 db.enum_data(self.parent).variants[self.id].variant_data.clone()
84 } 81 }
85} 82}
@@ -91,7 +88,7 @@ pub struct EnumData {
91} 88}
92 89
93impl EnumData { 90impl EnumData {
94 pub(crate) fn enum_data_query(db: &impl PersistentHirDatabase, e: Enum) -> Arc<EnumData> { 91 pub(crate) fn enum_data_query(db: &impl DefDatabase, e: Enum) -> Arc<EnumData> {
95 let (_file_id, enum_def) = e.source(db); 92 let (_file_id, enum_def) = e.source(db);
96 let name = enum_def.name().map(|n| n.as_name()); 93 let name = enum_def.name().map(|n| n.as_name());
97 let variants = variants(&*enum_def) 94 let variants = variants(&*enum_def)
@@ -189,7 +186,7 @@ impl VariantDef {
189 VariantDef::EnumVariant(it) => it.field(db, name), 186 VariantDef::EnumVariant(it) => it.field(db, name),
190 } 187 }
191 } 188 }
192 pub(crate) fn variant_data(self, db: &impl PersistentHirDatabase) -> Arc<VariantData> { 189 pub(crate) fn variant_data(self, db: &impl DefDatabase) -> Arc<VariantData> {
193 match self { 190 match self {
194 VariantDef::Struct(it) => it.variant_data(db), 191 VariantDef::Struct(it) => it.variant_data(db),
195 VariantDef::EnumVariant(it) => it.variant_data(db), 192 VariantDef::EnumVariant(it) => it.variant_data(db),
@@ -198,7 +195,7 @@ impl VariantDef {
198} 195}
199 196
200impl StructField { 197impl StructField {
201 pub(crate) fn source_impl(&self, db: &impl PersistentHirDatabase) -> (HirFileId, FieldSource) { 198 pub(crate) fn source_impl(&self, db: &impl DefDatabase) -> (HirFileId, FieldSource) {
202 let var_data = self.parent.variant_data(db); 199 let var_data = self.parent.variant_data(db);
203 let fields = var_data.fields().unwrap(); 200 let fields = var_data.fields().unwrap();
204 let ss; 201 let ss;