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