diff options
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r-- | crates/ra_hir/src/adt.rs | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs index c549e2126..6d917bb1b 100644 --- a/crates/ra_hir/src/adt.rs +++ b/crates/ra_hir/src/adt.rs | |||
@@ -62,10 +62,7 @@ impl StructData { | |||
62 | } | 62 | } |
63 | 63 | ||
64 | fn variants(enum_def: &ast::EnumDef) -> impl Iterator<Item = &ast::EnumVariant> { | 64 | fn variants(enum_def: &ast::EnumDef) -> impl Iterator<Item = &ast::EnumVariant> { |
65 | enum_def | 65 | enum_def.variant_list().into_iter().flat_map(|it| it.variants()) |
66 | .variant_list() | ||
67 | .into_iter() | ||
68 | .flat_map(|it| it.variants()) | ||
69 | } | 66 | } |
70 | 67 | ||
71 | impl EnumVariant { | 68 | impl EnumVariant { |
@@ -83,9 +80,7 @@ impl EnumVariant { | |||
83 | (file_id, var) | 80 | (file_id, var) |
84 | } | 81 | } |
85 | pub(crate) fn variant_data(&self, db: &impl PersistentHirDatabase) -> Arc<VariantData> { | 82 | pub(crate) fn variant_data(&self, db: &impl PersistentHirDatabase) -> Arc<VariantData> { |
86 | db.enum_data(self.parent).variants[self.id] | 83 | db.enum_data(self.parent).variants[self.id].variant_data.clone() |
87 | .variant_data | ||
88 | .clone() | ||
89 | } | 84 | } |
90 | } | 85 | } |
91 | 86 | ||
@@ -222,14 +217,12 @@ impl StructField { | |||
222 | }; | 217 | }; |
223 | 218 | ||
224 | let field_sources = match struct_flavor { | 219 | let field_sources = match struct_flavor { |
225 | ast::StructFlavor::Tuple(fl) => fl | 220 | ast::StructFlavor::Tuple(fl) => { |
226 | .fields() | 221 | fl.fields().map(|it| FieldSource::Pos(it.to_owned())).collect() |
227 | .map(|it| FieldSource::Pos(it.to_owned())) | 222 | } |
228 | .collect(), | 223 | ast::StructFlavor::Named(fl) => { |
229 | ast::StructFlavor::Named(fl) => fl | 224 | fl.fields().map(|it| FieldSource::Named(it.to_owned())).collect() |
230 | .fields() | 225 | } |
231 | .map(|it| FieldSource::Named(it.to_owned())) | ||
232 | .collect(), | ||
233 | ast::StructFlavor::Unit => Vec::new(), | 226 | ast::StructFlavor::Unit => Vec::new(), |
234 | }; | 227 | }; |
235 | let field = field_sources | 228 | let field = field_sources |