diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2010-09-08 15:38:07 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2010-09-08 15:38:39 -0700 |
| commit | 2172a3bcf44bbecfe9469451cdaed96b5beee71e (patch) | |
| tree | 58e7d09ae2b352733e56d0244d8aa0851e5737c7 /src/boot/fe/cexp.ml | |
| parent | 388f8ce520b16d73bf682cf6bf3f714bcc35b49d (diff) | |
| download | rust-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.ml | 14 |
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 |
