diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2015-10-08 23:45:46 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2015-10-13 15:19:25 +0300 |
| commit | 40aa09e4c9f4c3f0fa2b088895c8f5125325eaa4 (patch) | |
| tree | 0ea29987683fbd21b30e2bc23769517a7984a116 /src/libsyntax/fold.rs | |
| parent | 30af54dede8b9f03a83dd5ad588bb430a5a76270 (diff) | |
| download | rust-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.rs | 13 |
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, }) } |
