Skip to content

Commit 12cb128

Browse files
committed
Move visit to newtype-style nominal type
This makes getting the function fields out of the visitor less cumbersome and more efficient (no take/drop).
1 parent 5f544b1 commit 12cb128

File tree

6 files changed

+126
-129
lines changed

6 files changed

+126
-129
lines changed

src/comp/middle/alias.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ fn check_crate(@ty::ctxt tcx, &@ast::crate crate) {
4949
visit_item=bind visit_item(cx, _, _, _),
5050
visit_expr=bind visit_expr(cx, _, _, _)
5151
with *visit::default_visitor[scope]());
52-
visit::visit_crate(*crate, [], visit::vtor(v));
52+
visit::visit_crate(*crate, [], visit::mk_vt(v));
5353
tcx.sess.abort_if_errors();
5454
}
5555

@@ -59,7 +59,7 @@ fn visit_fn(@ctx cx, &ast::_fn f, &ast::ty_param[] tp, &span sp,
5959
for (ast::arg arg_ in f.decl.inputs) {
6060
cx.local_map.insert(arg_.id, arg(arg_.mode));
6161
}
62-
vt(v).visit_block(f.body, [], v);
62+
v.visit_block(f.body, [], v);
6363
}
6464

6565
fn visit_item(@ctx cx, &@ast::item i, &scope sc, &vt[scope] v) {

src/comp/middle/ast_map.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ fn map_crate(&crate c) -> map {
2323
visit_native_item=bind map_native_item(map, _, _, _),
2424
visit_expr=bind map_expr(map, _, _, _)
2525
with *visit::default_visitor[()]());
26-
visit::visit_crate(c, (), visit::vtor(v_map));
26+
visit::visit_crate(c, (), visit::mk_vt(v_map));
2727
ret map;
2828
}
2929

src/comp/middle/resolve.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ fn map_crate(&@env e, &@ast::crate c) {
155155
visit_item=bind index_i(e, _, _, _)
156156
with *visit::default_visitor[scopes]());
157157
visit::visit_crate(*c, cons(scope_crate(c), @nil),
158-
visit::vtor(v_map_mod));
158+
visit::mk_vt(v_map_mod));
159159
// Register the top-level mod
160160

161161
e.mod_map.insert(-1,
@@ -200,7 +200,7 @@ fn map_crate(&@env e, &@ast::crate c) {
200200
visit_item=visit_item_with_scope
201201
with *visit::default_visitor[scopes]());
202202
visit::visit_crate(*c, cons(scope_crate(c), @nil),
203-
visit::vtor(v_link_glob));
203+
visit::mk_vt(v_link_glob));
204204
fn link_glob(@env e, &@ast::view_item vi, &scopes sc, &vt[scopes] v) {
205205
fn find_mod(@env e, scopes sc) -> @indexed_mod {
206206
alt (sc) {
@@ -257,7 +257,7 @@ fn resolve_names(&@env e, &@ast::crate c) {
257257
visit_constr=bind walk_constr(e, _, _, _),
258258
visit_fn=bind visit_fn_with_scope(e, _, _, _, _, _, _, _)
259259
with *visit::default_visitor());
260-
visit::visit_crate(*c, cons(scope_crate(c), @nil), visit::vtor(v));
260+
visit::visit_crate(*c, cons(scope_crate(c), @nil), visit::mk_vt(v));
261261
e.sess.abort_if_errors();
262262

263263
fn walk_expr(@env e, &@ast::expr exp, &scopes sc, &vt[scopes] v) {
@@ -1183,7 +1183,7 @@ fn check_for_collisions(&@env e, &ast::crate c) {
11831183
visit_block=bind check_block(e, _, _, _),
11841184
visit_arm=bind check_arm(e, _, _, _)
11851185
with *visit::default_visitor());
1186-
visit::visit_crate(c, (), visit::vtor(v));
1186+
visit::visit_crate(c, (), visit::mk_vt(v));
11871187
}
11881188

11891189
fn check_mod_name(&env e, &ident name, list[mod_index_entry] entries) {

src/comp/middle/trans.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9108,8 +9108,8 @@ fn collect_items(&@crate_ctxt ccx, @ast::crate crate) {
91089108
visit_item=bind collect_item_1(ccx, _, _, _) with *visitor0);
91099109
auto visitor2 =
91109110
@rec(visit_item=bind collect_item_2(ccx, _, _, _) with *visitor0);
9111-
visit::visit_crate(*crate, ~[], visit::vtor(visitor1));
9112-
visit::visit_crate(*crate, ~[], visit::vtor(visitor2));
9111+
visit::visit_crate(*crate, ~[], visit::mk_vt(visitor1));
9112+
visit::visit_crate(*crate, ~[], visit::mk_vt(visitor2));
91139113
}
91149114

91159115
fn collect_tag_ctor(@crate_ctxt ccx, &@ast::item i, &str[] pt, &vt[str[]] v) {
@@ -9133,7 +9133,7 @@ fn collect_tag_ctors(&@crate_ctxt ccx, @ast::crate crate) {
91339133
auto visitor =
91349134
@rec(visit_item=bind collect_tag_ctor(ccx, _, _, _)
91359135
with *visit::default_visitor());
9136-
visit::visit_crate(*crate, ~[], visit::vtor(visitor));
9136+
visit::visit_crate(*crate, ~[], visit::mk_vt(visitor));
91379137
}
91389138

91399139

@@ -9178,7 +9178,7 @@ fn trans_constants(&@crate_ctxt ccx, @ast::crate crate) {
91789178
auto visitor =
91799179
@rec(visit_item=bind trans_constant(ccx, _, _, _)
91809180
with *visit::default_visitor());
9181-
visit::visit_crate(*crate, ~[], visit::vtor(visitor));
9181+
visit::visit_crate(*crate, ~[], visit::mk_vt(visitor));
91829182
}
91839183

91849184
fn vp2i(&@block_ctxt cx, ValueRef v) -> ValueRef {

src/comp/middle/tstate/collect_locals.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,11 @@ fn find_locals(&ty::ctxt tcx, &_fn f, &ty_param[] tps, &span sp, &fn_ident i,
7373
let ctxt cx = rec(cs=@mutable ~[], tcx=tcx);
7474
auto visitor = visit::default_visitor[ctxt]();
7575

76-
visitor =
77-
@rec(visit_local=collect_local,
78-
visit_expr=collect_pred,
79-
visit_fn=do_nothing
80-
with *visitor);
81-
visit::visit_fn(f, tps, sp, i, id, cx, visit::vtor(visitor));
76+
visitor = @rec(visit_local=collect_local,
77+
visit_expr=collect_pred,
78+
visit_fn=do_nothing
79+
with *visitor);
80+
visit::visit_fn(f, tps, sp, i, id, cx, visit::mk_vt(visitor));
8281
ret cx;
8382
}
8483

0 commit comments

Comments
 (0)