@@ -511,7 +511,7 @@ impl<'a> CrateLocator<'a> {
511511 rlib : self . extract_one ( rlibs, CrateFlavor :: Rlib , & mut slot) ?,
512512 dylib : self . extract_one ( dylibs, CrateFlavor :: Dylib , & mut slot) ?,
513513 } ;
514- Ok ( slot. map ( |( _ , svh, metadata) | ( svh, Library { source, metadata } ) ) )
514+ Ok ( slot. map ( |( svh, metadata, _ ) | ( svh, Library { source, metadata } ) ) )
515515 }
516516
517517 fn needs_crate_flavor ( & self , flavor : CrateFlavor ) -> bool {
@@ -535,11 +535,13 @@ impl<'a> CrateLocator<'a> {
535535 // read the metadata from it if `*slot` is `None`. If the metadata couldn't
536536 // be read, it is assumed that the file isn't a valid rust library (no
537537 // errors are emitted).
538+ //
539+ // The `PathBuf` in `slot` will only be used for diagnostic purposes.
538540 fn extract_one (
539541 & mut self ,
540542 m : FxHashMap < PathBuf , PathKind > ,
541543 flavor : CrateFlavor ,
542- slot : & mut Option < ( PathBuf , Svh , MetadataBlob ) > ,
544+ slot : & mut Option < ( Svh , MetadataBlob , PathBuf ) > ,
543545 ) -> Result < Option < ( PathBuf , PathKind ) > , CrateError > {
544546 // If we are producing an rlib, and we've already loaded metadata, then
545547 // we should not attempt to discover further crate sources (unless we're
@@ -595,15 +597,15 @@ impl<'a> CrateLocator<'a> {
595597 }
596598 } ;
597599 // If we see multiple hashes, emit an error about duplicate candidates.
598- if slot. as_ref ( ) . is_some_and ( |s| s. 1 != hash) {
600+ if slot. as_ref ( ) . is_some_and ( |s| s. 0 != hash) {
599601 if let Some ( candidates) = err_data {
600602 return Err ( CrateError :: MultipleCandidates (
601603 self . crate_name ,
602604 flavor,
603605 candidates,
604606 ) ) ;
605607 }
606- err_data = Some ( vec ! [ slot. take( ) . unwrap( ) . 0 ] ) ;
608+ err_data = Some ( vec ! [ slot. take( ) . unwrap( ) . 2 ] ) ;
607609 }
608610 if let Some ( candidates) = & mut err_data {
609611 candidates. push ( lib) ;
@@ -636,7 +638,7 @@ impl<'a> CrateLocator<'a> {
636638 continue ;
637639 }
638640 }
639- * slot = Some ( ( lib. clone ( ) , hash , metadata ) ) ;
641+ * slot = Some ( ( hash , metadata , lib. clone ( ) ) ) ;
640642 ret = Some ( ( lib, kind) ) ;
641643 }
642644
0 commit comments