aboutsummaryrefslogtreecommitdiff
path: root/src/boot/me/resolve.ml
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-10-08 14:54:51 -0700
committerGraydon Hoare <[email protected]>2010-10-08 14:54:51 -0700
commit5f2459145cb90d7d52cfde1d4ed7719dde1dfdc0 (patch)
tree7f2305524744f4b7fb02469f3c9ab0e64b4c9577 /src/boot/me/resolve.ml
parentrustc: Make functions output a type, not a slot (diff)
downloadrust-5f2459145cb90d7d52cfde1d4ed7719dde1dfdc0.tar.xz
rust-5f2459145cb90d7d52cfde1d4ed7719dde1dfdc0.zip
Add -lpath mechanism for logging only a subset of a pass (by module-path prefix)
Diffstat (limited to 'src/boot/me/resolve.ml')
-rw-r--r--src/boot/me/resolve.ml22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/boot/me/resolve.ml b/src/boot/me/resolve.ml
index b5d7d65f..118e5b49 100644
--- a/src/boot/me/resolve.ml
+++ b/src/boot/me/resolve.ml
@@ -16,12 +16,12 @@ open Common;;
let log cx = Session.log "resolve"
- cx.ctxt_sess.Session.sess_log_resolve
+ (should_log cx cx.ctxt_sess.Session.sess_log_resolve)
cx.ctxt_sess.Session.sess_log_out
;;
let iflog cx thunk =
- if cx.ctxt_sess.Session.sess_log_resolve
+ if (should_log cx cx.ctxt_sess.Session.sess_log_resolve)
then thunk ()
else ()
;;
@@ -139,7 +139,6 @@ let stmt_collecting_visitor
let all_item_collecting_visitor
(cx:ctxt)
- (path:Ast.name_component Stack.t)
(inner:Walk.visitor)
: Walk.visitor =
@@ -169,7 +168,7 @@ let all_item_collecting_visitor
Array.iter (fun p -> htab_put cx.ctxt_all_defns p.id
(DEFN_ty_param p.node)) p;
htab_put cx.ctxt_all_defns i.id (DEFN_item i.node);
- htab_put cx.ctxt_all_item_names i.id (path_to_name path);
+ htab_put cx.ctxt_all_item_names i.id (path_to_name cx.ctxt_curr_path);
log cx "collected item #%d: %s" (int_of_node i.id) n;
begin
match i.node.Ast.decl_item with
@@ -191,14 +190,14 @@ let all_item_collecting_visitor
let visit_obj_fn_pre obj ident fn =
htab_put cx.ctxt_all_defns fn.id (DEFN_obj_fn (obj.id, fn.node));
- htab_put cx.ctxt_all_item_names fn.id (path_to_name path);
+ htab_put cx.ctxt_all_item_names fn.id (path_to_name cx.ctxt_curr_path);
note_header fn.id fn.node.Ast.fn_input_slots;
inner.Walk.visit_obj_fn_pre obj ident fn
in
let visit_obj_drop_pre obj b =
htab_put cx.ctxt_all_defns b.id (DEFN_obj_drop obj.id);
- htab_put cx.ctxt_all_item_names b.id (path_to_name path);
+ htab_put cx.ctxt_all_item_names b.id (path_to_name cx.ctxt_curr_path);
inner.Walk.visit_obj_drop_pre obj b
in
@@ -210,7 +209,7 @@ let all_item_collecting_visitor
htab_put cx.ctxt_all_defns id
(DEFN_loop_body (Stack.top items));
htab_put cx.ctxt_all_item_names id
- (path_to_name path);
+ (path_to_name cx.ctxt_curr_path);
| _ -> ()
end;
inner.Walk.visit_stmt_pre s;
@@ -822,13 +821,12 @@ let process_crate
(crate:Ast.crate)
: unit =
let (scopes:(scope list) ref) = ref [] in
- let path = Stack.create () in
let passes_0 =
[|
(block_scope_forming_visitor cx Walk.empty_visitor);
(stmt_collecting_visitor cx
- (all_item_collecting_visitor cx path
+ (all_item_collecting_visitor cx
Walk.empty_visitor));
|]
in
@@ -852,11 +850,11 @@ let process_crate
in
let log_flag = cx.ctxt_sess.Session.sess_log_resolve in
log cx "running primary resolve passes";
- run_passes cx "resolve collect" path passes_0 log_flag log crate;
+ run_passes cx "resolve collect" passes_0 log_flag log crate;
log cx "running secondary resolve passes";
- run_passes cx "resolve bind" path passes_1 log_flag log crate;
+ run_passes cx "resolve bind" passes_1 log_flag log crate;
log cx "running tertiary resolve passes";
- run_passes cx "resolve patterns" path passes_2 log_flag log crate;
+ run_passes cx "resolve patterns" passes_2 log_flag log crate;
iflog cx
begin