Skip to content

Commit ed37da2

Browse files
committed
middle/entry.rs Visitor refactoring (#7081): unify Entry{Context,Visitor}.
1 parent 6724317 commit ed37da2

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

src/librustc/middle/entry.rs

+9-14
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,9 @@ struct EntryContext {
3939
non_main_fns: ~[(NodeId, Span)],
4040
}
4141

42-
struct EntryVisitor;
43-
44-
impl Visitor<@mut EntryContext> for EntryVisitor {
45-
fn visit_item(&mut self, item:@item, ctxt:@mut EntryContext) {
46-
find_item(item, ctxt, self);
42+
impl Visitor<()> for EntryContext {
43+
fn visit_item(&mut self, item:@item, _:()) {
44+
find_item(item, self);
4745
}
4846
}
4947

@@ -62,7 +60,7 @@ pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map)
6260
return
6361
}
6462

65-
let ctxt = @mut EntryContext {
63+
let mut ctxt = EntryContext {
6664
session: session,
6765
ast_map: ast_map,
6866
main_fn: None,
@@ -71,14 +69,12 @@ pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map)
7169
non_main_fns: ~[],
7270
};
7371

74-
let mut v = EntryVisitor;
75-
76-
visit::walk_crate(&mut v, crate, ctxt);
72+
visit::walk_crate(&mut ctxt, crate, ());
7773

78-
configure_main(ctxt);
74+
configure_main(&mut ctxt);
7975
}
8076

81-
fn find_item(item: @item, ctxt: @mut EntryContext, visitor: &mut EntryVisitor) {
77+
fn find_item(item: @item, ctxt: &mut EntryContext) {
8278
match item.node {
8379
item_fn(*) => {
8480
if item.ident.name == special_idents::main.name {
@@ -125,11 +121,10 @@ fn find_item(item: @item, ctxt: @mut EntryContext, visitor: &mut EntryVisitor) {
125121
_ => ()
126122
}
127123

128-
visit::walk_item(visitor, item, ctxt);
124+
visit::walk_item(ctxt, item, ());
129125
}
130126

131-
fn configure_main(ctxt: @mut EntryContext) {
132-
let this = &mut *ctxt;
127+
fn configure_main(this: &mut EntryContext) {
133128
if this.start_fn.is_some() {
134129
*this.session.entry_fn = this.start_fn;
135130
*this.session.entry_type = Some(session::EntryStart);

0 commit comments

Comments
 (0)