@@ -195,6 +195,7 @@ impl<'a> CrateOrigin<'a> {
195195 CrateOrigin :: IndirectDependency { parent_private, dep, .. } => {
196196 Some ( dep. is_private || * parent_private)
197197 }
198+ CrateOrigin :: Injected => Some ( true ) ,
198199 _ => None ,
199200 }
200201 }
@@ -546,17 +547,7 @@ impl CStore {
546547 /// Sometimes the directly dependent crate is not specified by `--extern`, in this case,
547548 /// `private-dep` is none during loading. This is equivalent to the scenario where the
548549 /// command parameter is set to `public-dependency`
549- fn is_private_dep (
550- & self ,
551- externs : & Externs ,
552- name : Symbol ,
553- private_dep : Option < bool > ,
554- origin : CrateOrigin < ' _ > ,
555- ) -> bool {
556- if matches ! ( origin, CrateOrigin :: Injected ) {
557- return true ;
558- }
559-
550+ fn is_private_dep ( & self , externs : & Externs , name : Symbol , private_dep : Option < bool > ) -> bool {
560551 let extern_private = externs. get ( name. as_str ( ) ) . map ( |e| e. is_private_dep ) ;
561552 match ( extern_private, private_dep) {
562553 // Explicit non-private via `--extern`, explicit non-private from metadata, or
@@ -583,7 +574,7 @@ impl CStore {
583574 let Library { source, metadata } = lib;
584575 let crate_root = metadata. get_root ( ) ;
585576 let host_hash = host_lib. as_ref ( ) . map ( |lib| lib. metadata . get_root ( ) . hash ( ) ) ;
586- let private_dep = self . is_private_dep ( & tcx. sess . opts . externs , name, private_dep, origin ) ;
577+ let private_dep = self . is_private_dep ( & tcx. sess . opts . externs , name, private_dep) ;
587578
588579 // Claim this crate number and cache it
589580 let feed = self . intern_stable_crate_id ( tcx, & crate_root) ?;
@@ -814,8 +805,7 @@ impl CStore {
814805 // not specified by `--extern` on command line parameters, it may be
815806 // `private-dependency` when `register_crate` is called for the first time. Then it must be updated to
816807 // `public-dependency` here.
817- let private_dep =
818- self . is_private_dep ( & tcx. sess . opts . externs , name, private_dep, origin) ;
808+ let private_dep = self . is_private_dep ( & tcx. sess . opts . externs , name, private_dep) ;
819809 let data = self . get_crate_data_mut ( cnum) ;
820810 if data. is_proc_macro_crate ( ) {
821811 dep_kind = CrateDepKind :: MacrosOnly ;
0 commit comments