diff options
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index adb61a804..4c121503e 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -346,13 +346,20 @@ pub enum FieldSource { | |||
346 | Pos(TreeArc<ast::PosFieldDef>), | 346 | Pos(TreeArc<ast::PosFieldDef>), |
347 | } | 347 | } |
348 | 348 | ||
349 | impl HasSource for StructField { | ||
350 | type Ast = FieldSource; | ||
351 | fn source(self, db: &(impl DefDatabase + AstDatabase)) -> Source<FieldSource> { | ||
352 | self.source_impl(db).into() | ||
353 | } | ||
354 | } | ||
355 | |||
349 | impl StructField { | 356 | impl StructField { |
350 | pub fn name(&self, db: &impl HirDatabase) -> Name { | 357 | pub fn name(&self, db: &impl HirDatabase) -> Name { |
351 | self.parent.variant_data(db).fields().unwrap()[self.id].name.clone() | 358 | self.parent.variant_data(db).fields().unwrap()[self.id].name.clone() |
352 | } | 359 | } |
353 | 360 | ||
354 | pub fn source(&self, db: &(impl DefDatabase + AstDatabase)) -> (HirFileId, FieldSource) { | 361 | pub fn source(&self, db: &(impl DefDatabase + AstDatabase)) -> Source<FieldSource> { |
355 | self.source_impl(db) | 362 | self.source_impl(db).into() |
356 | } | 363 | } |
357 | 364 | ||
358 | pub fn ty(&self, db: &impl HirDatabase) -> Ty { | 365 | pub fn ty(&self, db: &impl HirDatabase) -> Ty { |