about summary refs log tree commit diff
path: root/src/boot/fe/cexp.ml
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2010-09-08 15:38:07 -0700
committerPatrick Walton <pcwalton@mimiga.net>2010-09-08 15:38:39 -0700
commit2172a3bcf44bbecfe9469451cdaed96b5beee71e (patch)
tree58e7d09ae2b352733e56d0244d8aa0851e5737c7 /src/boot/fe/cexp.ml
parent388f8ce520b16d73bf682cf6bf3f714bcc35b49d (diff)
downloadrust-2172a3bcf44bbecfe9469451cdaed96b5beee71e.tar.gz
rust-2172a3bcf44bbecfe9469451cdaed96b5beee71e.zip
First lame stab at solving the diamond import problem
Diffstat (limited to 'src/boot/fe/cexp.ml')
-rw-r--r--src/boot/fe/cexp.ml14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/boot/fe/cexp.ml b/src/boot/fe/cexp.ml
index f69d35bd16f..e14bda51295 100644
--- a/src/boot/fe/cexp.ml
+++ b/src/boot/fe/cexp.ml
@@ -380,6 +380,7 @@ and eval_cexp (env:env) (exp:cexp) : cdir array =
             ps.pstate_temp_id
             ps.pstate_node_id
             ps.pstate_opaque_id
+            ps.pstate_crate_cache
             ps.pstate_sess
             ps.pstate_get_mod
             ps.pstate_get_cenv_tok
@@ -427,7 +428,12 @@ and eval_cexp (env:env) (exp:cexp) : cdir array =
               end
               u.use_meta
           in
-          ps.pstate_get_mod meta_pat id ps.pstate_node_id ps.pstate_opaque_id
+          ps.pstate_get_mod
+            meta_pat
+            id
+            ps.pstate_node_id
+            ps.pstate_opaque_id
+            ps.pstate_crate_cache
         in
           iflog ps
             begin
@@ -618,6 +624,7 @@ let parse_crate_file
     (sess:Session.sess)
     (get_mod:get_mod_fn)
     (infer_lib_name:(Ast.ident -> filename))
+    (crate_cache:(crate_id, Ast.mod_items) Hashtbl.t)
     : Ast.crate =
   let fname = Session.filename_of sess.Session.sess_in in
   let tref = ref (Temp 0) in
@@ -659,7 +666,7 @@ let parse_crate_file
         | Some (PVAL_num n) -> LIT_INT n
   in
   let ps =
-    make_parser tref nref oref sess get_mod get_cenv_tok
+    make_parser tref nref oref crate_cache sess get_mod get_cenv_tok
       infer_lib_name required required_syms fname
   in
   let env = { env_bindings = bindings;
@@ -723,6 +730,7 @@ let parse_src_file
     (sess:Session.sess)
     (get_mod:get_mod_fn)
     (infer_lib_name:(Ast.ident -> filename))
+    (crate_cache:(crate_id, Ast.mod_items) Hashtbl.t)
     : Ast.crate =
   let fname = Session.filename_of sess.Session.sess_in in
   let tref = ref (Temp 0) in
@@ -735,7 +743,7 @@ let parse_src_file
                   ident) ps)
   in
   let ps =
-    make_parser tref nref oref sess get_mod get_cenv_tok
+    make_parser tref nref oref crate_cache sess get_mod get_cenv_tok
       infer_lib_name required required_syms fname
   in
     with_err_handling sess