@@ -219,6 +219,8 @@ impl<'a> CrateLoader<'a> {
219219
220220 let cnum_map = self . resolve_crate_deps ( root, & crate_root, & metadata, cnum, span, dep_kind) ;
221221
222+ let dependencies: Vec < CrateNum > = cnum_map. iter ( ) . cloned ( ) . collect ( ) ;
223+
222224 let def_path_table = record_time ( & self . sess . perf_stats . decode_def_path_tables_time , || {
223225 crate_root. def_path_table . decode ( ( & metadata, self . sess ) )
224226 } ) ;
@@ -239,8 +241,9 @@ impl<'a> CrateLoader<'a> {
239241 } ) ,
240242 root : crate_root,
241243 blob : metadata,
242- cnum_map : Lock :: new ( cnum_map ) ,
244+ cnum_map,
243245 cnum,
246+ dependencies : Lock :: new ( dependencies) ,
244247 codemap_import_info : RwLock :: new ( vec ! [ ] ) ,
245248 attribute_cache : Lock :: new ( [ Vec :: new ( ) , Vec :: new ( ) ] ) ,
246249 dep_kind : Lock :: new ( dep_kind) ,
@@ -392,7 +395,7 @@ impl<'a> CrateLoader<'a> {
392395
393396 // Propagate the extern crate info to dependencies.
394397 extern_crate. direct = false ;
395- for & dep_cnum in cmeta. cnum_map . borrow ( ) . iter ( ) {
398+ for & dep_cnum in cmeta. dependencies . borrow ( ) . iter ( ) {
396399 self . update_extern_crate ( dep_cnum, extern_crate, visited) ;
397400 }
398401 }
@@ -1040,7 +1043,7 @@ impl<'a> CrateLoader<'a> {
10401043 }
10411044
10421045 info ! ( "injecting a dep from {} to {}" , cnum, krate) ;
1043- data. cnum_map . borrow_mut ( ) . push ( krate) ;
1046+ data. dependencies . borrow_mut ( ) . push ( krate) ;
10441047 } ) ;
10451048 }
10461049}
0 commit comments