@@ -361,6 +361,7 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
361
361
lib : Library ,
362
362
dep_kind : CrateDepKind ,
363
363
name : Symbol ,
364
+ private_dep : bool ,
364
365
) -> Result < CrateNum , CrateError > {
365
366
let _prof_timer = self . sess . prof . generic_activity ( "metadata_register_crate" ) ;
366
367
@@ -369,7 +370,7 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
369
370
let host_hash = host_lib. as_ref ( ) . map ( |lib| lib. metadata . get_root ( ) . hash ( ) ) ;
370
371
371
372
let private_dep =
372
- self . sess . opts . externs . get ( name. as_str ( ) ) . map_or ( false , |e| e. is_private_dep ) ;
373
+ self . sess . opts . externs . get ( name. as_str ( ) ) . map_or ( private_dep , |e| e. is_private_dep ) ;
373
374
374
375
// Claim this crate number and cache it
375
376
let cnum = self . cstore . intern_stable_crate_id ( & crate_root) ?;
@@ -514,15 +515,16 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
514
515
if !name. as_str ( ) . is_ascii ( ) {
515
516
return Err ( CrateError :: NonAsciiName ( name) ) ;
516
517
}
517
- let ( root, hash, host_hash, extra_filename, path_kind) = match dep {
518
+ let ( root, hash, host_hash, extra_filename, path_kind, private_dep ) = match dep {
518
519
Some ( ( root, dep) ) => (
519
520
Some ( root) ,
520
521
Some ( dep. hash ) ,
521
522
dep. host_hash ,
522
523
Some ( & dep. extra_filename [ ..] ) ,
523
524
PathKind :: Dependency ,
525
+ dep. is_private ,
524
526
) ,
525
- None => ( None , None , None , None , PathKind :: Crate ) ,
527
+ None => ( None , None , None , None , PathKind :: Crate , false ) ,
526
528
} ;
527
529
let result = if let Some ( cnum) = self . existing_match ( name, hash, path_kind) {
528
530
( LoadResult :: Previous ( cnum) , None )
@@ -558,10 +560,11 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
558
560
dep_kind = CrateDepKind :: MacrosOnly ;
559
561
}
560
562
data. update_dep_kind ( |data_dep_kind| cmp:: max ( data_dep_kind, dep_kind) ) ;
563
+ data. update_private_dep ( |private_dep| private_dep && private_dep) ;
561
564
Ok ( cnum)
562
565
}
563
566
( LoadResult :: Loaded ( library) , host_library) => {
564
- self . register_crate ( host_library, root, library, dep_kind, name)
567
+ self . register_crate ( host_library, root, library, dep_kind, name, private_dep )
565
568
}
566
569
_ => panic ! ( ) ,
567
570
}
0 commit comments