summary refs log tree commit diff
path: root/src/libsyntax/fold.rs
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2015-10-08 23:45:46 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2015-10-13 15:19:25 +0300
commit40aa09e4c9f4c3f0fa2b088895c8f5125325eaa4 (patch)
tree0ea29987683fbd21b30e2bc23769517a7984a116 /src/libsyntax/fold.rs
parent30af54dede8b9f03a83dd5ad588bb430a5a76270 (diff)
downloadrust-40aa09e4c9f4c3f0fa2b088895c8f5125325eaa4.tar.gz
rust-40aa09e4c9f4c3f0fa2b088895c8f5125325eaa4.zip
Merge struct fields and struct kind
Diffstat (limited to 'src/libsyntax/fold.rs')
-rw-r--r--src/libsyntax/fold.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs
index d7b7fc242b4..329ffb286eb 100644
--- a/src/libsyntax/fold.rs
+++ b/src/libsyntax/fold.rs
@@ -815,10 +815,17 @@ pub fn noop_fold_where_predicate<T: Folder>(
 }
 
 pub fn noop_fold_struct_def<T: Folder>(struct_def: P<VariantData>, fld: &mut T) -> P<VariantData> {
-    struct_def.map(|VariantData { fields, id, kind }| VariantData {
-        fields: fields.move_map(|f| fld.fold_struct_field(f)),
+    struct_def.map(|VariantData { data_, id }| VariantData {
+        data_: match data_ {
+            ast::VariantData_::Struct(fields) => {
+                ast::VariantData_::Struct(fields.move_map(|f| fld.fold_struct_field(f)))
+            }
+            ast::VariantData_::Tuple(fields) => {
+                ast::VariantData_::Tuple(fields.move_map(|f| fld.fold_struct_field(f)))
+            }
+            ast::VariantData_::Unit => ast::VariantData_::Unit
+        },
         id: fld.new_id(id),
-        kind: kind,
     })
 }