@@ -365,6 +365,7 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
365365 lib : Library ,
366366 dep_kind : CrateDepKind ,
367367 name : Symbol ,
368+ private_dep : bool ,
368369 ) -> Result < CrateNum , CrateError > {
369370 let _prof_timer = self . sess . prof . generic_activity ( "metadata_register_crate" ) ;
370371
@@ -518,15 +519,16 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
518519 if !name. as_str ( ) . is_ascii ( ) {
519520 return Err ( CrateError :: NonAsciiName ( name) ) ;
520521 }
521- let ( root, hash, host_hash, extra_filename, path_kind) = match dep {
522+ let ( root, hash, host_hash, extra_filename, path_kind, private_dep ) = match dep {
522523 Some ( ( root, dep) ) => (
523524 Some ( root) ,
524525 Some ( dep. hash ) ,
525526 dep. host_hash ,
526527 Some ( & dep. extra_filename [ ..] ) ,
527528 PathKind :: Dependency ,
529+ dep. is_private ,
528530 ) ,
529- None => ( None , None , None , None , PathKind :: Crate ) ,
531+ None => ( None , None , None , None , PathKind :: Crate , false ) ,
530532 } ;
531533 let result = if let Some ( cnum) = self . existing_match ( name, hash, path_kind) {
532534 ( LoadResult :: Previous ( cnum) , None )
@@ -562,10 +564,11 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
562564 dep_kind = CrateDepKind :: MacrosOnly ;
563565 }
564566 data. update_dep_kind ( |data_dep_kind| cmp:: max ( data_dep_kind, dep_kind) ) ;
567+ data. update_private_dep ( |private_dep| private_dep && private_dep) ;
565568 Ok ( cnum)
566569 }
567570 ( LoadResult :: Loaded ( library) , host_library) => {
568- self . register_crate ( host_library, root, library, dep_kind, name)
571+ self . register_crate ( host_library, root, library, dep_kind, name, private_dep )
569572 }
570573 _ => panic ! ( ) ,
571574 }
0 commit comments