@@ -245,27 +245,10 @@ impl ProjectWorkspace {
245245 if let Err ( e) = & data_layout {
246246 tracing:: error!( %e, "failed fetching data layout for {cargo_toml:?} workspace" ) ;
247247 }
248+ sysroot. load_workspace ( & SysrootSourceWorkspaceConfig :: CargoMetadata (
249+ sysroot_metadata_config ( & config. extra_env , & targets) ,
250+ ) ) ;
248251
249- let ( meta, error) = CargoWorkspace :: fetch_metadata (
250- cargo_toml,
251- cargo_toml. parent ( ) ,
252- & CargoMetadataConfig {
253- features : config. features . clone ( ) ,
254- targets : targets. clone ( ) ,
255- extra_args : config. extra_args . clone ( ) ,
256- extra_env : config. extra_env . clone ( ) ,
257- } ,
258- & sysroot,
259- false ,
260- progress,
261- )
262- . with_context ( || {
263- format ! (
264- "Failed to read Cargo metadata from Cargo.toml file {cargo_toml}, {toolchain:?}" ,
265- )
266- } ) ?;
267- let cargo_config_extra_env = cargo_config_env ( cargo_toml, & config. extra_env , & sysroot) ;
268- let cargo = CargoWorkspace :: new ( meta, cargo_toml. clone ( ) , cargo_config_extra_env) ;
269252 let rustc = rustc_dir. and_then ( |rustc_dir| {
270253 info ! ( workspace = %cargo_toml, rustc_dir = %rustc_dir, "Using rustc source" ) ;
271254 match CargoWorkspace :: fetch_metadata (
@@ -302,9 +285,28 @@ impl ProjectWorkspace {
302285 }
303286 }
304287 } ) ;
305- sysroot. load_workspace ( & SysrootSourceWorkspaceConfig :: CargoMetadata (
306- sysroot_metadata_config ( & config. extra_env , & targets) ,
307- ) ) ;
288+
289+ let ( meta, error) = CargoWorkspace :: fetch_metadata (
290+ cargo_toml,
291+ cargo_toml. parent ( ) ,
292+ & CargoMetadataConfig {
293+ features : config. features . clone ( ) ,
294+ targets,
295+ extra_args : config. extra_args . clone ( ) ,
296+ extra_env : config. extra_env . clone ( ) ,
297+ } ,
298+ & sysroot,
299+ false ,
300+ progress,
301+ )
302+ . with_context ( || {
303+ format ! (
304+ "Failed to read Cargo metadata from Cargo.toml file {cargo_toml}, {toolchain:?}" ,
305+ )
306+ } ) ?;
307+ let cargo_config_extra_env = cargo_config_env ( cargo_toml, & config. extra_env , & sysroot) ;
308+ let cargo = CargoWorkspace :: new ( meta, cargo_toml. clone ( ) , cargo_config_extra_env) ;
309+
308310 Ok ( ProjectWorkspace {
309311 kind : ProjectWorkspaceKind :: Cargo {
310312 cargo,
0 commit comments