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.rs11
1 files changed, 4 insertions, 7 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs
index 6b8604b3e..b3843b35c 100644
--- a/crates/ra_hir/src/adt.rs
+++ b/crates/ra_hir/src/adt.rs
@@ -11,7 +11,7 @@ use ra_syntax::{
11 11
12use crate::{ 12use crate::{
13 Name, AsName, Struct, Union, Enum, EnumVariant, Crate, AstDatabase, 13 Name, AsName, Struct, Union, Enum, EnumVariant, Crate, AstDatabase,
14 HirDatabase, HirFileId, StructField, FieldSource, Source, HasSource, 14 HirDatabase, StructField, FieldSource, Source, HasSource,
15 type_ref::TypeRef, DefDatabase, 15 type_ref::TypeRef, DefDatabase,
16}; 16};
17 17
@@ -201,10 +201,7 @@ impl VariantDef {
201} 201}
202 202
203impl StructField { 203impl StructField {
204 pub(crate) fn source_impl( 204 pub(crate) fn source_impl(&self, db: &(impl DefDatabase + AstDatabase)) -> Source<FieldSource> {
205 &self,
206 db: &(impl DefDatabase + AstDatabase),
207 ) -> (HirFileId, FieldSource) {
208 let var_data = self.parent.variant_data(db); 205 let var_data = self.parent.variant_data(db);
209 let fields = var_data.fields().unwrap(); 206 let fields = var_data.fields().unwrap();
210 let ss; 207 let ss;
@@ -229,12 +226,12 @@ impl StructField {
229 } 226 }
230 ast::StructKind::Unit => Vec::new(), 227 ast::StructKind::Unit => Vec::new(),
231 }; 228 };
232 let field = field_sources 229 let ast = field_sources
233 .into_iter() 230 .into_iter()
234 .zip(fields.iter()) 231 .zip(fields.iter())
235 .find(|(_syntax, (id, _))| *id == self.id) 232 .find(|(_syntax, (id, _))| *id == self.id)
236 .unwrap() 233 .unwrap()
237 .0; 234 .0;
238 (file_id, field) 235 Source { file_id, ast }
239 } 236 }
240} 237}