@@ -245,27 +245,10 @@ impl ProjectWorkspace {
245
245
if let Err ( e) = & data_layout {
246
246
tracing:: error!( %e, "failed fetching data layout for {cargo_toml:?} workspace" ) ;
247
247
}
248
+ sysroot. load_workspace ( & SysrootSourceWorkspaceConfig :: CargoMetadata (
249
+ sysroot_metadata_config ( & config. extra_env , & targets) ,
250
+ ) ) ;
248
251
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) ;
269
252
let rustc = rustc_dir. and_then ( |rustc_dir| {
270
253
info ! ( workspace = %cargo_toml, rustc_dir = %rustc_dir, "Using rustc source" ) ;
271
254
match CargoWorkspace :: fetch_metadata (
@@ -302,9 +285,28 @@ impl ProjectWorkspace {
302
285
}
303
286
}
304
287
} ) ;
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
+
308
310
Ok ( ProjectWorkspace {
309
311
kind : ProjectWorkspaceKind :: Cargo {
310
312
cargo,
0 commit comments