@@ -361,16 +361,21 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
361
361
lib : Library ,
362
362
dep_kind : CrateDepKind ,
363
363
name : Symbol ,
364
- private_dep : bool ,
364
+ private_dep : Option < bool > ,
365
365
) -> Result < CrateNum , CrateError > {
366
366
let _prof_timer = self . sess . prof . generic_activity ( "metadata_register_crate" ) ;
367
367
368
368
let Library { source, metadata } = lib;
369
369
let crate_root = metadata. get_root ( ) ;
370
370
let host_hash = host_lib. as_ref ( ) . map ( |lib| lib. metadata . get_root ( ) . hash ( ) ) ;
371
371
372
- let private_dep =
373
- self . sess . opts . externs . get ( name. as_str ( ) ) . map_or ( private_dep, |e| e. is_private_dep ) ;
372
+ let private_dep = self
373
+ . sess
374
+ . opts
375
+ . externs
376
+ . get ( name. as_str ( ) )
377
+ . map_or ( private_dep. unwrap_or ( false ) , |e| e. is_private_dep )
378
+ && private_dep. unwrap_or ( true ) ;
374
379
375
380
// Claim this crate number and cache it
376
381
let cnum = self . cstore . intern_stable_crate_id ( & crate_root) ?;
@@ -522,9 +527,9 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
522
527
dep. host_hash ,
523
528
Some ( & dep. extra_filename [ ..] ) ,
524
529
PathKind :: Dependency ,
525
- dep. is_private ,
530
+ Some ( dep. is_private ) ,
526
531
) ,
527
- None => ( None , None , None , None , PathKind :: Crate , false ) ,
532
+ None => ( None , None , None , None , PathKind :: Crate , None ) ,
528
533
} ;
529
534
let result = if let Some ( cnum) = self . existing_match ( name, hash, path_kind) {
530
535
( LoadResult :: Previous ( cnum) , None )
@@ -560,7 +565,9 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
560
565
dep_kind = CrateDepKind :: MacrosOnly ;
561
566
}
562
567
data. update_dep_kind ( |data_dep_kind| cmp:: max ( data_dep_kind, dep_kind) ) ;
563
- data. update_private_dep ( |p_d| p_d && private_dep) ;
568
+ if let Some ( private_dep) = private_dep {
569
+ data. update_private_dep ( |p_d| p_d && private_dep) ;
570
+ }
564
571
Ok ( cnum)
565
572
}
566
573
( LoadResult :: Loaded ( library) , host_library) => {
0 commit comments