@@ -130,15 +130,15 @@ pub fn configure_and_expand(
130130 let crate_name = crate_name. to_string ( ) ;
131131 let ( result, resolver) = BoxedResolver :: new ( static move || {
132132 let sess = & * sess;
133- let mut crate_loader = CrateLoader :: new ( sess, & * cstore, & crate_name) ;
133+ let crate_loader = CrateLoader :: new ( sess, & * cstore, & crate_name) ;
134134 let resolver_arenas = Resolver :: arenas ( ) ;
135135 let res = configure_and_expand_inner (
136136 sess,
137137 & * cstore,
138138 krate,
139139 & crate_name,
140140 & resolver_arenas,
141- & mut crate_loader,
141+ & crate_loader,
142142 plugin_info,
143143 ) ;
144144 let mut resolver = match res {
@@ -169,6 +169,7 @@ impl ExpansionResult {
169169 ExpansionResult {
170170 defs : Steal :: new ( resolver. definitions ) ,
171171 resolutions : Steal :: new ( Resolutions {
172+ extern_crate_map : resolver. extern_crate_map ,
172173 export_map : resolver. export_map ,
173174 trait_map : resolver. trait_map ,
174175 glob_map : resolver. glob_map ,
@@ -187,6 +188,7 @@ impl ExpansionResult {
187188 ExpansionResult {
188189 defs : Steal :: new ( resolver. definitions . clone ( ) ) ,
189190 resolutions : Steal :: new ( Resolutions {
191+ extern_crate_map : resolver. extern_crate_map . clone ( ) ,
190192 export_map : resolver. export_map . clone ( ) ,
191193 trait_map : resolver. trait_map . clone ( ) ,
192194 glob_map : resolver. glob_map . clone ( ) ,
@@ -319,7 +321,7 @@ fn configure_and_expand_inner<'a>(
319321 mut krate : ast:: Crate ,
320322 crate_name : & str ,
321323 resolver_arenas : & ' a ResolverArenas < ' a > ,
322- crate_loader : & ' a mut CrateLoader < ' a > ,
324+ crate_loader : & ' a CrateLoader < ' a > ,
323325 plugin_info : PluginInfo ,
324326) -> Result < ( ast:: Crate , Resolver < ' a > ) > {
325327 time ( sess, "pre-AST-expansion lint checks" , || {
@@ -663,16 +665,15 @@ fn write_out_deps(compiler: &Compiler, outputs: &OutputFilenames, out_filenames:
663665
664666 if sess. binary_dep_depinfo ( ) {
665667 for cnum in compiler. cstore . crates_untracked ( ) {
666- let metadata = compiler. cstore . crate_data_as_rc_any ( cnum) ;
667- let metadata = metadata. downcast_ref :: < cstore:: CrateMetadata > ( ) . unwrap ( ) ;
668- if let Some ( ( path, _) ) = & metadata. source . dylib {
669- files. push ( escape_dep_filename ( & FileName :: Real ( path. clone ( ) ) ) ) ;
668+ let source = compiler. cstore . crate_source_untracked ( cnum) ;
669+ if let Some ( ( path, _) ) = source. dylib {
670+ files. push ( escape_dep_filename ( & FileName :: Real ( path) ) ) ;
670671 }
671- if let Some ( ( path, _) ) = & metadata . source . rlib {
672- files. push ( escape_dep_filename ( & FileName :: Real ( path. clone ( ) ) ) ) ;
672+ if let Some ( ( path, _) ) = source. rlib {
673+ files. push ( escape_dep_filename ( & FileName :: Real ( path) ) ) ;
673674 }
674- if let Some ( ( path, _) ) = & metadata . source . rmeta {
675- files. push ( escape_dep_filename ( & FileName :: Real ( path. clone ( ) ) ) ) ;
675+ if let Some ( ( path, _) ) = source. rmeta {
676+ files. push ( escape_dep_filename ( & FileName :: Real ( path) ) ) ;
676677 }
677678 }
678679 }
0 commit comments