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.rs23
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
64fn variants(enum_def: &ast::EnumDef) -> impl Iterator<Item = &ast::EnumVariant> { 64fn 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
71impl EnumVariant { 68impl 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