@@ -219,6 +219,8 @@ impl<'a> CrateLoader<'a> {
219
219
220
220
let cnum_map = self . resolve_crate_deps ( root, & crate_root, & metadata, cnum, span, dep_kind) ;
221
221
222
+ let dependencies: Vec < CrateNum > = cnum_map. iter ( ) . cloned ( ) . collect ( ) ;
223
+
222
224
let def_path_table = record_time ( & self . sess . perf_stats . decode_def_path_tables_time , || {
223
225
crate_root. def_path_table . decode ( ( & metadata, self . sess ) )
224
226
} ) ;
@@ -239,8 +241,9 @@ impl<'a> CrateLoader<'a> {
239
241
} ) ,
240
242
root : crate_root,
241
243
blob : metadata,
242
- cnum_map : Lock :: new ( cnum_map ) ,
244
+ cnum_map,
243
245
cnum,
246
+ dependencies : Lock :: new ( dependencies) ,
244
247
codemap_import_info : RwLock :: new ( vec ! [ ] ) ,
245
248
attribute_cache : Lock :: new ( [ Vec :: new ( ) , Vec :: new ( ) ] ) ,
246
249
dep_kind : Lock :: new ( dep_kind) ,
@@ -392,7 +395,7 @@ impl<'a> CrateLoader<'a> {
392
395
393
396
// Propagate the extern crate info to dependencies.
394
397
extern_crate. direct = false ;
395
- for & dep_cnum in cmeta. cnum_map . borrow ( ) . iter ( ) {
398
+ for & dep_cnum in cmeta. dependencies . borrow ( ) . iter ( ) {
396
399
self . update_extern_crate ( dep_cnum, extern_crate, visited) ;
397
400
}
398
401
}
@@ -1040,7 +1043,7 @@ impl<'a> CrateLoader<'a> {
1040
1043
}
1041
1044
1042
1045
info ! ( "injecting a dep from {} to {}" , cnum, krate) ;
1043
- data. cnum_map . borrow_mut ( ) . push ( krate) ;
1046
+ data. dependencies . borrow_mut ( ) . push ( krate) ;
1044
1047
} ) ;
1045
1048
}
1046
1049
}
0 commit comments