aboutsummaryrefslogtreecommitdiff
path: root/src/boot/driver
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-09-20 13:06:49 -0700
committerGraydon Hoare <[email protected]>2010-09-20 13:06:49 -0700
commit7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc (patch)
tree4897e598c2a06a76bfd0c2e709e6828126b29d29 /src/boot/driver
parentBeginnings of post-resolve simplify pass. (diff)
downloadrust-7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc.tar.xz
rust-7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc.zip
Move id counters into sess in preparation for moving desugaring to middle-end.
Diffstat (limited to 'src/boot/driver')
-rw-r--r--src/boot/driver/lib.ml10
-rw-r--r--src/boot/driver/main.ml5
-rw-r--r--src/boot/driver/session.ml5
3 files changed, 13 insertions, 7 deletions
diff --git a/src/boot/driver/lib.ml b/src/boot/driver/lib.ml
index 3b3ee72d..0d0e93be 100644
--- a/src/boot/driver/lib.ml
+++ b/src/boot/driver/lib.ml
@@ -109,11 +109,11 @@ let get_file_mod
(sess:Session.sess)
(abi:Abi.abi)
(filename:filename)
- (nref:node_id ref)
- (oref:opaque_id ref)
: Ast.mod_items =
let dies = get_dies sess filename in
let items = Hashtbl.create 0 in
+ let nref = sess.Session.sess_node_id_counter in
+ let oref = sess.Session.sess_opaque_id_counter in
Dwarf.extract_mod_items nref oref abi items dies;
items
;;
@@ -123,8 +123,6 @@ let get_mod
(abi:Abi.abi)
(meta:Ast.meta_pat)
(use_id:node_id)
- (nref:node_id ref)
- (oref:opaque_id ref)
(crate_item_cache:(crate_id, Ast.mod_items) Hashtbl.t)
: (filename * Ast.mod_items) =
let found = Queue.create () in
@@ -215,8 +213,8 @@ let get_mod
| 1 ->
let (filename, crate_id) = Queue.pop found in
let items =
- htab_search_or_default crate_item_cache crate_id
- (fun () -> get_file_mod sess abi filename nref oref)
+ htab_search_or_default crate_item_cache crate_id
+ (fun () -> get_file_mod sess abi filename)
in
(filename, items)
| _ -> Common.err (Some use_id) "multiple crates match 'use' clause"
diff --git a/src/boot/driver/main.ml b/src/boot/driver/main.ml
index e80e7682..3bd5d737 100644
--- a/src/boot/driver/main.ml
+++ b/src/boot/driver/main.ml
@@ -65,6 +65,9 @@ let (sess:Session.sess) =
Session.sess_timings = Hashtbl.create 0;
Session.sess_lib_dirs = Queue.create ();
Session.sess_crate_meta = Hashtbl.create 0;
+ Session.sess_node_id_counter = ref (Node 0);
+ Session.sess_opaque_id_counter = ref (Opaque 0);
+ Session.sess_temp_id_counter = ref (Temp 0);
}
;;
@@ -101,7 +104,7 @@ let set_default_output_filename (sess:Session.sess) : unit =
let dump_sig (filename:filename) : unit =
let items =
- Lib.get_file_mod sess abi filename (ref (Node 0)) (ref (Opaque 0)) in
+ Lib.get_file_mod sess abi filename in
Printf.fprintf stdout "%s\n" (Fmt.fmt_to_str Ast.fmt_mod_items items);
exit_if_failed ();
exit 0
diff --git a/src/boot/driver/session.ml b/src/boot/driver/session.ml
index 2f81e4f5..06fcacb2 100644
--- a/src/boot/driver/session.ml
+++ b/src/boot/driver/session.ml
@@ -47,10 +47,15 @@ type sess =
mutable sess_report_deps: bool;
mutable sess_next_crate_id: int;
mutable sess_fuzz_item_count: int;
+
sess_timings: (string, float) Hashtbl.t;
sess_spans: (node_id,span) Hashtbl.t;
sess_lib_dirs: filename Queue.t;
sess_crate_meta: (meta, crate_id) Hashtbl.t;
+
+ sess_node_id_counter: node_id ref;
+ sess_opaque_id_counter: opaque_id ref;
+ sess_temp_id_counter: temp_id ref;
}
;;