@@ -1069,8 +1069,7 @@ fn cargo_to_crate_graph(
1069
1069
) -> ( CrateGraph , ProcMacroPaths ) {
1070
1070
let _p = tracing:: info_span!( "cargo_to_crate_graph" ) . entered ( ) ;
1071
1071
let mut res = ( CrateGraph :: default ( ) , ProcMacroPaths :: default ( ) ) ;
1072
- let crate_graph = & mut res. 0 ;
1073
- let proc_macros = & mut res. 1 ;
1072
+ let ( crate_graph, proc_macros) = & mut res;
1074
1073
let ( public_deps, libproc_macro) =
1075
1074
sysroot_to_crate_graph ( crate_graph, sysroot, rustc_cfg. clone ( ) , load) ;
1076
1075
@@ -1499,7 +1498,7 @@ fn sysroot_to_crate_graph(
1499
1498
let _p = tracing:: info_span!( "sysroot_to_crate_graph" ) . entered ( ) ;
1500
1499
match sysroot. workspace ( ) {
1501
1500
RustLibSrcWorkspace :: Workspace ( cargo) => {
1502
- let ( mut cg, mut pm) = cargo_to_crate_graph (
1501
+ let ( mut cg, pm) = cargo_to_crate_graph (
1503
1502
load,
1504
1503
None ,
1505
1504
cargo,
@@ -1519,7 +1518,6 @@ fn sysroot_to_crate_graph(
1519
1518
& WorkspaceBuildScripts :: default ( ) ,
1520
1519
false ,
1521
1520
) ;
1522
-
1523
1521
let mut pub_deps = vec ! [ ] ;
1524
1522
let mut libproc_macro = None ;
1525
1523
let diff = CfgDiff :: new ( vec ! [ ] , vec ! [ CfgAtom :: Flag ( sym:: test. clone( ) ) ] ) . unwrap ( ) ;
@@ -1560,6 +1558,10 @@ fn sysroot_to_crate_graph(
1560
1558
1561
1559
// Remove all crates except the ones we are interested in to keep the sysroot graph small.
1562
1560
let removed_mapping = cg. remove_crates_except ( & marker_set) ;
1561
+ let mut pm = pm
1562
+ . into_iter ( )
1563
+ . filter_map ( |( k, v) | Some ( ( removed_mapping[ k. into_raw ( ) . into_u32 ( ) as usize ] ?, v) ) )
1564
+ . collect ( ) ;
1563
1565
let mapping = crate_graph. extend ( cg, & mut pm) ;
1564
1566
1565
1567
// Map the id through the removal mapping first, then through the crate graph extension mapping.
0 commit comments