Visitor refactoring: Step 1, couple (Env, vt<Env>) together in a tuple.

This commit is contained in:
Felix S. Klock II
2013-06-12 04:55:16 +02:00
parent 135ba946a2
commit ecef9ad75a
36 changed files with 766 additions and 777 deletions

View File

@@ -323,9 +323,9 @@ impl inlined_item_utils for inlined_item {
fn accept<E: Copy>(&self, e: E, v: visit::vt<E>) {
match *self {
ii_item(i) => (v.visit_item)(i, e, v),
ii_foreign(i) => (v.visit_foreign_item)(i, e, v),
ii_method(_, m) => visit::visit_method_helper(m, e, v),
ii_item(i) => (v.visit_item)(i, (e, v)),
ii_foreign(i) => (v.visit_foreign_item)(i, (e, v)),
ii_method(_, m) => visit::visit_method_helper(m, (e, v)),
}
}
}
@@ -403,12 +403,12 @@ pub fn id_visitor<T: Copy>(vfn: @fn(node_id, T)) -> visit::vt<T> {
}
};
visit::mk_vt(@visit::Visitor {
visit_mod: |m, sp, id, t, vt| {
visit_mod: |m, sp, id, (t, vt)| {
vfn(id, t);
visit::visit_mod(m, sp, id, t, vt);
visit::visit_mod(m, sp, id, (t, vt));
},
visit_view_item: |vi, t, vt| {
visit_view_item: |vi, (t, vt)| {
match vi.node {
view_item_extern_mod(_, _, id) => vfn(id, t),
view_item_use(ref vps) => {
@@ -426,42 +426,42 @@ pub fn id_visitor<T: Copy>(vfn: @fn(node_id, T)) -> visit::vt<T> {
}
}
}
visit::visit_view_item(vi, t, vt);
visit::visit_view_item(vi, (t, vt));
},
visit_foreign_item: |ni, t, vt| {
visit_foreign_item: |ni, (t, vt)| {
vfn(ni.id, t);
visit::visit_foreign_item(ni, t, vt);
visit::visit_foreign_item(ni, (t, vt));
},
visit_item: |i, t, vt| {
visit_item: |i, (t, vt)| {
vfn(i.id, t);
match i.node {
item_enum(ref enum_definition, _) =>
for (*enum_definition).variants.each |v| { vfn(v.node.id, t); },
_ => ()
}
visit::visit_item(i, t, vt);
visit::visit_item(i, (t, vt));
},
visit_local: |l, t, vt| {
visit_local: |l, (t, vt)| {
vfn(l.node.id, t);
visit::visit_local(l, t, vt);
visit::visit_local(l, (t, vt));
},
visit_block: |b, t, vt| {
visit_block: |b, (t, vt)| {
vfn(b.node.id, t);
visit::visit_block(b, t, vt);
visit::visit_block(b, (t, vt));
},
visit_stmt: |s, t, vt| {
visit_stmt: |s, (t, vt)| {
vfn(ast_util::stmt_id(s), t);
visit::visit_stmt(s, t, vt);
visit::visit_stmt(s, (t, vt));
},
visit_pat: |p, t, vt| {
visit_pat: |p, (t, vt)| {
vfn(p.id, t);
visit::visit_pat(p, t, vt);
visit::visit_pat(p, (t, vt));
},
visit_expr: |e, t, vt| {
visit_expr: |e, (t, vt)| {
{
let r = e.get_callee_id();
for r.iter().advance |callee_id| {
@@ -469,23 +469,23 @@ pub fn id_visitor<T: Copy>(vfn: @fn(node_id, T)) -> visit::vt<T> {
}
}
vfn(e.id, t);
visit::visit_expr(e, t, vt);
visit::visit_expr(e, (t, vt));
},
visit_ty: |ty, t, vt| {
visit_ty: |ty, (t, vt)| {
match ty.node {
ty_path(_, id) => vfn(id, t),
_ => { /* fall through */ }
}
visit::visit_ty(ty, t, vt);
visit::visit_ty(ty, (t, vt));
},
visit_generics: |generics, t, vt| {
visit_generics: |generics, (t, vt)| {
visit_generics(generics, t);
visit::visit_generics(generics, t, vt);
visit::visit_generics(generics, (t, vt));
},
visit_fn: |fk, d, a, b, id, t, vt| {
visit_fn: |fk, d, a, b, id, (t, vt)| {
vfn(id, t);
match *fk {
@@ -504,12 +504,12 @@ pub fn id_visitor<T: Copy>(vfn: @fn(node_id, T)) -> visit::vt<T> {
for d.inputs.each |arg| {
vfn(arg.id, t)
}
visit::visit_fn(fk, d, a, b, id, t, vt);
visit::visit_fn(fk, d, a, b, id, (t, vt));
},
visit_struct_field: |f, t, vt| {
visit_struct_field: |f, (t, vt)| {
vfn(f.node.id, t);
visit::visit_struct_field(f, t, vt);
visit::visit_struct_field(f, (t, vt));
},
.. *visit::default_visitor()
@@ -577,7 +577,7 @@ impl EachViewItem for ast::crate {
let vtor: visit::vt<()> = visit::mk_simple_visitor(@visit::SimpleVisitor {
visit_view_item: |vi| { *broke = f(vi); }, ..*visit::default_simple_visitor()
});
visit::visit_crate(self, (), vtor);
visit::visit_crate(self, ((), vtor));
true
}
}