diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-08-07 15:34:07 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-08-07 15:35:05 -0700 |
| commit | deaef48675c34f3a63ded090058dfe6cbe60c3c6 (patch) | |
| tree | e4b3f23226443637b19d5fb0c30a4f84232e5383 /src/libsyntax/fold.rs | |
| parent | 1a6dadad5bc7a0bb85f67ddaa9d38d9d4f741057 (diff) | |
rustc: Split out struct bodies into a separate "struct_def" type in the AST
Diffstat (limited to 'src/libsyntax/fold.rs')
| -rw-r--r-- | src/libsyntax/fold.rs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 0ceee7f7d97..05f74a9c899 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -242,9 +242,9 @@ fn noop_fold_item_underscore(i: item_, fld: ast_fold) -> item_ { item_enum(vec::map(variants, |x| fld.fold_variant(x)), fold_ty_params(typms, fld)) } - item_class(typms, traits, items, m_ctor, m_dtor) => { + item_class(struct_def, typms) => { let resulting_optional_constructor; - match m_ctor { + match struct_def.ctor { none => { resulting_optional_constructor = none; } @@ -260,18 +260,20 @@ fn noop_fold_item_underscore(i: item_, fld: ast_fold) -> item_ { }); } } - let dtor = do option::map(m_dtor) |dtor| { + let dtor = do option::map(struct_def.dtor) |dtor| { let dtor_body = fld.fold_block(dtor.node.body); let dtor_id = fld.new_id(dtor.node.id); {node: {body: dtor_body, id: dtor_id with dtor.node} with dtor}}; - item_class( - /* FIXME (#2543) */ copy typms, - vec::map(traits, |p| fold_trait_ref(p, fld)), - vec::map(items, |x| fld.fold_class_item(x)), - resulting_optional_constructor, - dtor) + item_class({ + traits: vec::map(struct_def.traits, + |p| fold_trait_ref(p, fld)), + members: vec::map(struct_def.members, + |x| fld.fold_class_item(x)), + ctor: resulting_optional_constructor, + dtor: dtor}, + /* FIXME (#2543) */ copy typms) } item_impl(tps, ifce, ty, methods) => { item_impl(fold_ty_params(tps, fld), |
