@@ -42,12 +42,6 @@ use log;
4242
4343pub struct CrateLoader < ' a > {
4444 pub sess : & ' a Session ,
45- pub creader : CrateReader < ' a > ,
46- cstore : & ' a CStore ,
47- }
48-
49- pub struct CrateReader < ' a > {
50- sess : & ' a Session ,
5145 cstore : & ' a CStore ,
5246 next_crate_num : CrateNum ,
5347 foreign_item_map : FnvHashMap < String , Vec < ast:: NodeId > > ,
@@ -159,13 +153,13 @@ pub struct Macros {
159153 pub dylib : Option < PathBuf > ,
160154}
161155
162- impl < ' a > CrateReader < ' a > {
156+ impl < ' a > CrateLoader < ' a > {
163157 pub fn new ( sess : & ' a Session ,
164158 cstore : & ' a CStore ,
165159 local_crate_name : & str ,
166160 local_crate_config : ast:: CrateConfig )
167- -> CrateReader < ' a > {
168- CrateReader {
161+ -> Self {
162+ CrateLoader {
169163 sess : sess,
170164 cstore : cstore,
171165 next_crate_num : cstore. next_crate_num ( ) ,
@@ -890,7 +884,7 @@ impl<'a> CrateReader<'a> {
890884}
891885
892886impl ExtensionCrate {
893- fn register ( self , creader : & mut CrateReader ) {
887+ fn register ( self , loader : & mut CrateLoader ) {
894888 if !self . should_link {
895889 return
896890 }
@@ -901,31 +895,17 @@ impl ExtensionCrate {
901895 } ;
902896
903897 // Register crate now to avoid double-reading metadata
904- creader. register_crate ( & None ,
905- & self . ident ,
906- & self . name ,
907- self . span ,
908- library,
909- true ) ;
898+ loader. register_crate ( & None , & self . ident , & self . name , self . span , library, true ) ;
910899 }
911900}
912901
913902impl < ' a > CrateLoader < ' a > {
914- pub fn new ( sess : & ' a Session , cstore : & ' a CStore , krate : & ast:: Crate , crate_name : & str )
915- -> Self {
916- let loader = CrateLoader {
917- sess : sess,
918- cstore : cstore,
919- creader : CrateReader :: new ( sess, cstore, crate_name, krate. config . clone ( ) ) ,
920- } ;
921-
903+ pub fn preprocess ( & mut self , krate : & ast:: Crate ) {
922904 for attr in krate. attrs . iter ( ) . filter ( |m| m. name ( ) == "link_args" ) {
923905 if let Some ( ref linkarg) = attr. value_str ( ) {
924- loader . cstore . add_used_link_args ( & linkarg) ;
906+ self . cstore . add_used_link_args ( & linkarg) ;
925907 }
926908 }
927-
928- loader
929909 }
930910
931911 fn process_foreign_mod ( & mut self , i : & ast:: Item , fm : & ast:: ForeignMod ) {
@@ -982,7 +962,7 @@ impl<'a> CrateLoader<'a> {
982962 Some ( name) => name,
983963 None => continue ,
984964 } ;
985- let list = self . creader . foreign_item_map . entry ( lib_name. to_string ( ) )
965+ let list = self . foreign_item_map . entry ( lib_name. to_string ( ) )
986966 . or_insert ( Vec :: new ( ) ) ;
987967 list. extend ( fm. items . iter ( ) . map ( |it| it. id ) ) ;
988968 }
@@ -991,8 +971,8 @@ impl<'a> CrateLoader<'a> {
991971
992972impl < ' a > middle:: cstore:: CrateLoader for CrateLoader < ' a > {
993973 fn postprocess ( & mut self , krate : & ast:: Crate ) {
994- self . creader . inject_allocator_crate ( ) ;
995- self . creader . inject_panic_runtime ( krate) ;
974+ self . inject_allocator_crate ( ) ;
975+ self . inject_panic_runtime ( krate) ;
996976
997977 if log_enabled ! ( log:: INFO ) {
998978 dump_crates ( & self . cstore ) ;
@@ -1001,7 +981,7 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
1001981 for & ( ref name, kind) in & self . sess . opts . libs {
1002982 register_native_lib ( self . sess , self . cstore , None , name. clone ( ) , kind) ;
1003983 }
1004- self . creader . register_statically_included_foreign_items ( ) ;
984+ self . register_statically_included_foreign_items ( ) ;
1005985 }
1006986
1007987 fn process_item ( & mut self , item : & ast:: Item , definitions : & hir_map:: Definitions ) {
@@ -1024,12 +1004,12 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
10241004 }
10251005 }
10261006
1027- if let Some ( info) = self . creader . extract_crate_info ( item) {
1007+ if let Some ( info) = self . extract_crate_info ( item) {
10281008 if !info. should_link {
10291009 return ;
10301010 }
10311011
1032- let ( cnum, ..) = self . creader . resolve_crate (
1012+ let ( cnum, ..) = self . resolve_crate (
10331013 & None , & info. ident , & info. name , None , item. span , PathKind :: Crate , true ,
10341014 ) ;
10351015
@@ -1038,7 +1018,7 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
10381018
10391019 let extern_crate =
10401020 ExternCrate { def_id : def_id, span : item. span , direct : true , path_len : len } ;
1041- self . creader . update_extern_crate ( cnum, extern_crate, & mut FnvHashSet ( ) ) ;
1021+ self . update_extern_crate ( cnum, extern_crate, & mut FnvHashSet ( ) ) ;
10421022
10431023 self . cstore . add_extern_mod_stmt_cnum ( info. id , cnum) ;
10441024 }
0 commit comments