From 438765da59075339c99499e201384e835187f0ae Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 7 Aug 2012 17:46:07 -0700 Subject: [PATCH] rustc: Box struct_defs --- src/libsyntax/ast.rs | 2 +- src/libsyntax/ast_map.rs | 2 +- src/libsyntax/ast_util.rs | 2 +- src/libsyntax/fold.rs | 2 +- src/libsyntax/parse/parser.rs | 4 ++-- src/libsyntax/print/pprust.rs | 2 +- src/libsyntax/visit.rs | 16 ++++++++-------- src/rustc/metadata/encoder.rs | 2 +- src/rustc/middle/trans/base.rs | 2 +- src/rustc/middle/ty.rs | 2 +- src/rustc/middle/typeck/check.rs | 2 +- src/rustc/middle/typeck/coherence.rs | 2 +- src/rustc/middle/typeck/collect.rs | 2 +- 13 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 0cc433fdebab..4a9cefe7d1ba 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -736,7 +736,7 @@ enum item_ { item_foreign_mod(foreign_mod), item_ty(@ty, ~[ty_param]), item_enum(~[variant], ~[ty_param]), - item_class(struct_def, ~[ty_param]), + item_class(@struct_def, ~[ty_param]), item_trait(~[ty_param], ~[@trait_ref], ~[trait_method]), item_impl(~[ty_param], ~[@trait_ref], /* traits this impl implements */ diff --git a/src/libsyntax/ast_map.rs b/src/libsyntax/ast_map.rs index 5c270c968f34..27ecbdb4fb6b 100644 --- a/src/libsyntax/ast_map.rs +++ b/src/libsyntax/ast_map.rs @@ -247,7 +247,7 @@ fn map_item(i: @item, cx: ctx, v: vt) { vec::pop(cx.path); } -fn map_struct_def(struct_def: ast::struct_def, parent_node: ast_node, +fn map_struct_def(struct_def: @ast::struct_def, parent_node: ast_node, ident: ast::ident, id: ast::node_id, cx: ctx, _v: vt) { let (_, ms) = ast_util::split_class_items(struct_def.members); // Map trait refs to their parent classes. This is diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 7bbdac4db3cf..55c7389fed6f 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -565,7 +565,7 @@ fn id_visitor(vfn: fn@(node_id)) -> visit::vt<()> { visit_trait_method: fn@(_ty_m: trait_method) { }, - visit_struct_def: fn@(_sd: struct_def, _id: ident, _tps: ~[ty_param], + visit_struct_def: fn@(_sd: @struct_def, _id: ident, _tps: ~[ty_param], _id: node_id) { }, diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 05f74a9c8994..36c80cb3d5f6 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -266,7 +266,7 @@ fn noop_fold_item_underscore(i: item_, fld: ast_fold) -> item_ { {node: {body: dtor_body, id: dtor_id with dtor.node} with dtor}}; - item_class({ + item_class(@{ traits: vec::map(struct_def.traits, |p| fold_trait_ref(p, fld)), members: vec::map(struct_def.members, diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 780eff1f7578..46ed906900c6 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2598,7 +2598,7 @@ class parser { match the_ctor { some((ct_d, ct_attrs, ct_b, ct_s)) => { (class_name, - item_class({ + item_class(@{ traits: traits, members: ms, ctor: some({ @@ -2614,7 +2614,7 @@ class parser { } none => { (class_name, - item_class({ + item_class(@{ traits: traits, members: ms, ctor: none, diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 1965ea73186f..d9c85b8c72b8 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -582,7 +582,7 @@ fn print_item(s: ps, &&item: @ast::item) { s.ann.post(ann_node); } -fn print_struct(s: ps, struct_def: ast::struct_def, tps: ~[ast::ty_param], +fn print_struct(s: ps, struct_def: @ast::struct_def, tps: ~[ast::ty_param], ident: ast::ident, span: ast::span) { word_nbsp(s, *ident); print_type_params(s, tps); diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 7268a5c5d316..142656aa7c30 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -61,7 +61,7 @@ type visitor = visit_fn: fn@(fn_kind, fn_decl, blk, span, node_id, E, vt), visit_ty_method: fn@(ty_method, E, vt), visit_trait_method: fn@(trait_method, E, vt), - visit_struct_def: fn@(struct_def, ident, ~[ty_param], node_id, E, + visit_struct_def: fn@(@struct_def, ident, ~[ty_param], node_id, E, vt), visit_class_item: fn@(@class_member, E, vt)}; @@ -83,8 +83,8 @@ fn default_visitor() -> visitor { visit_fn: |a,b,c,d,e,f,g|visit_fn::(a, b, c, d, e, f, g), visit_ty_method: |a,b,c|visit_ty_method::(a, b, c), visit_trait_method: |a,b,c|visit_trait_method::(a, b, c), - visit_struct_def: - |a,b,c,d,e,f|visit_struct_def::(a, b, c, d, e, f), + visit_struct_def: |a,b,c,d,e,f|visit_struct_def::(a, b, c, + d, e, f), visit_class_item: |a,b,c|visit_class_item::(a, b, c)}; } @@ -318,7 +318,7 @@ fn visit_trait_method(m: trait_method, e: E, v: vt) { } } -fn visit_struct_def(sd: struct_def, nm: ast::ident, tps: ~[ty_param], +fn visit_struct_def(sd: @struct_def, nm: ast::ident, tps: ~[ty_param], id: node_id, e: E, v: vt) { for sd.members.each |m| { v.visit_class_item(m, e, v); @@ -479,7 +479,7 @@ type simple_visitor = visit_fn: fn@(fn_kind, fn_decl, blk, span, node_id), visit_ty_method: fn@(ty_method), visit_trait_method: fn@(trait_method), - visit_struct_def: fn@(struct_def, ident, ~[ty_param], node_id), + visit_struct_def: fn@(@struct_def, ident, ~[ty_param], node_id), visit_class_item: fn@(@class_member)}; fn simple_ignore_ty(_t: @ty) {} @@ -503,7 +503,7 @@ fn default_simple_visitor() -> simple_visitor { _id: node_id) { }, visit_ty_method: fn@(_m: ty_method) { }, visit_trait_method: fn@(_m: trait_method) { }, - visit_struct_def: fn@(_sd: struct_def, _nm: ident, + visit_struct_def: fn@(_sd: @struct_def, _nm: ident, _tps: ~[ty_param], _id: node_id) { }, visit_class_item: fn@(_c: @class_member) {} }; @@ -572,8 +572,8 @@ fn mk_simple_visitor(v: simple_visitor) -> vt<()> { f(m); visit_trait_method(m, e, v); } - fn v_struct_def(f: fn@(struct_def, ident, ~[ty_param], node_id), - sd: struct_def, nm: ident, tps: ~[ty_param], id: node_id, + fn v_struct_def(f: fn@(@struct_def, ident, ~[ty_param], node_id), + sd: @struct_def, nm: ident, tps: ~[ty_param], id: node_id, &&e: (), v: vt<()>) { f(sd, nm, tps, id); visit_struct_def(sd, nm, tps, id, e, v); diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs index 4c535f8af09a..a0e9c875f060 100644 --- a/src/rustc/metadata/encoder.rs +++ b/src/rustc/metadata/encoder.rs @@ -242,7 +242,7 @@ fn encode_module_item_paths(ebml_w: ebml::writer, ecx: @encode_ctxt, } fn encode_struct_def(ebml_w: ebml::writer, - struct_def: ast::struct_def, + struct_def: @ast::struct_def, path: ~[ast::ident], ident: ast::ident, &index: ~[entry<~str>]) { diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs index 11643f8a5ee9..c4ea48e3d41d 100644 --- a/src/rustc/middle/trans/base.rs +++ b/src/rustc/middle/trans/base.rs @@ -4909,7 +4909,7 @@ fn trans_item(ccx: @crate_ctxt, item: ast::item) { } } -fn trans_struct_def(ccx: @crate_ctxt, struct_def: ast::struct_def, +fn trans_struct_def(ccx: @crate_ctxt, struct_def: @ast::struct_def, tps: ~[ast::ty_param], path: @ast_map::path, ident: ast::ident, id: ast::node_id) { if tps.len() == 0u { diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs index 285e0068f66e..aa33f355f22b 100644 --- a/src/rustc/middle/ty.rs +++ b/src/rustc/middle/ty.rs @@ -2742,7 +2742,7 @@ fn ty_dtor(cx: ctxt, class_id: def_id) -> option { if is_local(class_id) { match cx.items.find(class_id.node) { some(ast_map::node_item(@{ - node: ast::item_class({ dtor: some(dtor), _ }, _), + node: ast::item_class(@{ dtor: some(dtor), _ }, _), _ }, _)) => some(local_def(dtor.node.id)), diff --git a/src/rustc/middle/typeck/check.rs b/src/rustc/middle/typeck/check.rs index cb723bca83d3..0c59559db762 100644 --- a/src/rustc/middle/typeck/check.rs +++ b/src/rustc/middle/typeck/check.rs @@ -400,7 +400,7 @@ fn check_no_duplicate_fields(tcx: ty::ctxt, fields: } -fn check_struct(ccx: @crate_ctxt, struct_def: ast::struct_def, +fn check_struct(ccx: @crate_ctxt, struct_def: @ast::struct_def, id: ast::node_id, span: span) { let tcx = ccx.tcx; let class_t = {self_ty: ty::node_id_to_type(tcx, id), node_id: id}; diff --git a/src/rustc/middle/typeck/coherence.rs b/src/rustc/middle/typeck/coherence.rs index 539c0ea2e5a0..7c9035f3cdf0 100644 --- a/src/rustc/middle/typeck/coherence.rs +++ b/src/rustc/middle/typeck/coherence.rs @@ -517,7 +517,7 @@ class CoherenceChecker { } } - fn create_impl_from_struct(struct_def: ast::struct_def, + fn create_impl_from_struct(struct_def: @ast::struct_def, ident: ast::ident, id: node_id) -> @Impl { diff --git a/src/rustc/middle/typeck/collect.rs b/src/rustc/middle/typeck/collect.rs index eb2f31d1c163..abbe5eb40ee5 100644 --- a/src/rustc/middle/typeck/collect.rs +++ b/src/rustc/middle/typeck/collect.rs @@ -445,7 +445,7 @@ fn convert(ccx: @crate_ctxt, it: @ast::item) { } } -fn convert_struct(ccx: @crate_ctxt, rp: bool, struct_def: ast::struct_def, +fn convert_struct(ccx: @crate_ctxt, rp: bool, struct_def: @ast::struct_def, tps: ~[ast::ty_param], tpt: ty::ty_param_bounds_and_ty, id: ast::node_id) { let tcx = ccx.tcx;