@@ -262,6 +262,7 @@ impl<'a> CrateLoader<'a> {
262262 ident : Symbol ,
263263 name : Symbol ,
264264 hash : Option < & Svh > ,
265+ extra_filename : Option < & str > ,
265266 span : Span ,
266267 path_kind : PathKind ,
267268 mut dep_kind : DepKind )
@@ -277,6 +278,7 @@ impl<'a> CrateLoader<'a> {
277278 ident,
278279 crate_name : name,
279280 hash : hash. map ( |a| & * a) ,
281+ extra_filename : extra_filename,
280282 filesearch : self . sess . target_filesearch ( path_kind) ,
281283 target : & self . sess . target . target ,
282284 triple : & self . sess . opts . target_triple ,
@@ -409,7 +411,8 @@ impl<'a> CrateLoader<'a> {
409411 :: std:: iter:: once ( krate) . chain ( crate_root. crate_deps
410412 . decode ( metadata)
411413 . map ( |dep| {
412- debug ! ( "resolving dep crate {} hash: `{}`" , dep. name, dep. hash) ;
414+ info ! ( "resolving dep crate {} hash: `{}` extra filename: `{}`" , dep. name, dep. hash,
415+ dep. extra_filename) ;
413416 if dep. kind == DepKind :: UnexportedMacrosOnly {
414417 return krate;
415418 }
@@ -418,7 +421,8 @@ impl<'a> CrateLoader<'a> {
418421 _ => dep. kind ,
419422 } ;
420423 let ( local_cnum, ..) = self . resolve_crate (
421- root, dep. name , dep. name , Some ( & dep. hash ) , span, PathKind :: Dependency , dep_kind,
424+ root, dep. name , dep. name , Some ( & dep. hash ) , Some ( & dep. extra_filename ) , span,
425+ PathKind :: Dependency , dep_kind,
422426 ) ;
423427 local_cnum
424428 } ) ) . collect ( )
@@ -437,6 +441,7 @@ impl<'a> CrateLoader<'a> {
437441 ident : orig_name,
438442 crate_name : rename,
439443 hash : None ,
444+ extra_filename : None ,
440445 filesearch : self . sess . host_filesearch ( PathKind :: Crate ) ,
441446 target : & self . sess . host ,
442447 triple : & host_triple,
@@ -664,7 +669,7 @@ impl<'a> CrateLoader<'a> {
664669
665670 let dep_kind = DepKind :: Implicit ;
666671 let ( cnum, data) =
667- self . resolve_crate ( & None , name, name, None , DUMMY_SP , PathKind :: Crate , dep_kind) ;
672+ self . resolve_crate ( & None , name, name, None , None , DUMMY_SP , PathKind :: Crate , dep_kind) ;
668673
669674 // Sanity check the loaded crate to ensure it is indeed a panic runtime
670675 // and the panic strategy is indeed what we thought it was.
@@ -771,7 +776,7 @@ impl<'a> CrateLoader<'a> {
771776 let symbol = Symbol :: intern ( name) ;
772777 let dep_kind = DepKind :: Explicit ;
773778 let ( _, data) =
774- self . resolve_crate ( & None , symbol, symbol, None , DUMMY_SP ,
779+ self . resolve_crate ( & None , symbol, symbol, None , None , DUMMY_SP ,
775780 PathKind :: Crate , dep_kind) ;
776781
777782 // Sanity check the loaded crate to ensure it is indeed a sanitizer runtime
@@ -794,7 +799,7 @@ impl<'a> CrateLoader<'a> {
794799 let symbol = Symbol :: intern ( "profiler_builtins" ) ;
795800 let dep_kind = DepKind :: Implicit ;
796801 let ( _, data) =
797- self . resolve_crate ( & None , symbol, symbol, None , DUMMY_SP ,
802+ self . resolve_crate ( & None , symbol, symbol, None , None , DUMMY_SP ,
798803 PathKind :: Crate , dep_kind) ;
799804
800805 // Sanity check the loaded crate to ensure it is indeed a profiler runtime
@@ -909,6 +914,7 @@ impl<'a> CrateLoader<'a> {
909914 name,
910915 name,
911916 None ,
917+ None ,
912918 DUMMY_SP ,
913919 PathKind :: Crate ,
914920 DepKind :: Implicit ) ;
@@ -1059,7 +1065,8 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
10591065 } ;
10601066
10611067 let ( cnum, ..) = self . resolve_crate (
1062- & None , item. ident . name , orig_name, None , item. span , PathKind :: Crate , dep_kind,
1068+ & None , item. ident . name , orig_name, None , None ,
1069+ item. span , PathKind :: Crate , dep_kind,
10631070 ) ;
10641071
10651072 let def_id = definitions. opt_local_def_id ( item. id ) . unwrap ( ) ;
@@ -1074,6 +1081,7 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
10741081 }
10751082
10761083 fn resolve_crate_from_path ( & mut self , name : Symbol , span : Span ) -> CrateNum {
1077- self . resolve_crate ( & None , name, name, None , span, PathKind :: Crate , DepKind :: Explicit ) . 0
1084+ self . resolve_crate ( & None , name, name, None , None , span, PathKind :: Crate ,
1085+ DepKind :: Explicit ) . 0
10781086 }
10791087}
0 commit comments