diff options
| author | Graydon Hoare <[email protected]> | 2010-09-20 13:06:49 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-09-20 13:06:49 -0700 |
| commit | 7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc (patch) | |
| tree | 4897e598c2a06a76bfd0c2e709e6828126b29d29 /src/boot/driver | |
| parent | Beginnings of post-resolve simplify pass. (diff) | |
| download | rust-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.ml | 10 | ||||
| -rw-r--r-- | src/boot/driver/main.ml | 5 | ||||
| -rw-r--r-- | src/boot/driver/session.ml | 5 |
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; } ;; |