@@ -138,12 +138,12 @@ impl ProjectWorkspace {
138
138
ProjectWorkspace :: Cargo { cargo, sysroot } => {
139
139
let mut roots = Vec :: with_capacity ( cargo. packages ( ) . len ( ) + sysroot. crates ( ) . len ( ) ) ;
140
140
for pkg in cargo. packages ( ) {
141
- let root = pkg. root ( & cargo ) . to_path_buf ( ) ;
142
- let member = pkg. is_member ( & cargo ) ;
141
+ let root = cargo [ pkg] . root ( ) . to_path_buf ( ) ;
142
+ let member = cargo [ pkg] . is_member ;
143
143
roots. push ( PackageRoot :: new ( root, member) ) ;
144
144
}
145
145
for krate in sysroot. crates ( ) {
146
- roots. push ( PackageRoot :: new ( krate. root_dir ( & sysroot ) . to_path_buf ( ) , false ) )
146
+ roots. push ( PackageRoot :: new ( sysroot [ krate] . root_dir ( ) . to_path_buf ( ) , false ) )
147
147
}
148
148
roots
149
149
}
@@ -164,7 +164,7 @@ impl ProjectWorkspace {
164
164
ProjectWorkspace :: Cargo { cargo, sysroot : _sysroot } => {
165
165
let mut out_dirs = Vec :: with_capacity ( cargo. packages ( ) . len ( ) ) ;
166
166
for pkg in cargo. packages ( ) {
167
- if let Some ( out_dir) = pkg. out_dir ( & cargo ) {
167
+ if let Some ( out_dir) = & cargo [ pkg] . out_dir {
168
168
out_dirs. push ( out_dir. to_path_buf ( ) ) ;
169
169
}
170
170
}
@@ -260,7 +260,7 @@ impl ProjectWorkspace {
260
260
ProjectWorkspace :: Cargo { cargo, sysroot } => {
261
261
let mut sysroot_crates = FxHashMap :: default ( ) ;
262
262
for krate in sysroot. crates ( ) {
263
- if let Some ( file_id) = load ( krate. root ( & sysroot ) ) {
263
+ if let Some ( file_id) = load ( & sysroot [ krate] . root ) {
264
264
// Crates from sysroot have `cfg(test)` disabled
265
265
let cfg_options = {
266
266
let mut opts = default_cfg_options. clone ( ) ;
@@ -274,7 +274,7 @@ impl ProjectWorkspace {
274
274
file_id,
275
275
Edition :: Edition2018 ,
276
276
Some (
277
- CrateName :: new ( krate. name ( & sysroot ) )
277
+ CrateName :: new ( & sysroot [ krate] . name )
278
278
. expect ( "Sysroot crate names should not contain dashes" ) ,
279
279
) ,
280
280
cfg_options,
@@ -285,8 +285,8 @@ impl ProjectWorkspace {
285
285
}
286
286
}
287
287
for from in sysroot. crates ( ) {
288
- for to in from. deps ( & sysroot ) {
289
- let name = to . name ( & sysroot ) ;
288
+ for & to in sysroot [ from] . deps . iter ( ) {
289
+ let name = & sysroot [ to ] . name ;
290
290
if let ( Some ( & from) , Some ( & to) ) =
291
291
( sysroot_crates. get ( & from) , sysroot_crates. get ( & to) )
292
292
{
@@ -309,18 +309,18 @@ impl ProjectWorkspace {
309
309
// Next, create crates for each package, target pair
310
310
for pkg in cargo. packages ( ) {
311
311
let mut lib_tgt = None ;
312
- for tgt in pkg. targets ( & cargo ) {
313
- let root = tgt. root ( & cargo ) ;
312
+ for & tgt in cargo [ pkg] . targets . iter ( ) {
313
+ let root = cargo [ tgt] . root . as_path ( ) ;
314
314
if let Some ( file_id) = load ( root) {
315
- let edition = pkg. edition ( & cargo ) ;
315
+ let edition = cargo [ pkg] . edition ;
316
316
let cfg_options = {
317
317
let mut opts = default_cfg_options. clone ( ) ;
318
- opts. insert_features ( pkg. features ( & cargo ) . iter ( ) . map ( Into :: into) ) ;
318
+ opts. insert_features ( cargo [ pkg] . features . iter ( ) . map ( Into :: into) ) ;
319
319
opts
320
320
} ;
321
321
let mut env = Env :: default ( ) ;
322
322
let mut extern_source = ExternSource :: default ( ) ;
323
- if let Some ( out_dir) = pkg. out_dir ( cargo ) {
323
+ if let Some ( out_dir) = & cargo [ pkg] . out_dir {
324
324
// FIXME: We probably mangle non UTF-8 paths here, figure out a better solution
325
325
env. set ( "OUT_DIR" , out_dir. to_string_lossy ( ) . to_string ( ) ) ;
326
326
if let Some ( & extern_source_id) = extern_source_roots. get ( out_dir) {
@@ -330,16 +330,16 @@ impl ProjectWorkspace {
330
330
let crate_id = crate_graph. add_crate_root (
331
331
file_id,
332
332
edition,
333
- Some ( CrateName :: normalize_dashes ( pkg. name ( & cargo ) ) ) ,
333
+ Some ( CrateName :: normalize_dashes ( & cargo [ pkg] . name ) ) ,
334
334
cfg_options,
335
335
env,
336
336
extern_source,
337
337
) ;
338
- if tgt. kind ( & cargo ) == TargetKind :: Lib {
338
+ if cargo [ tgt] . kind == TargetKind :: Lib {
339
339
lib_tgt = Some ( crate_id) ;
340
340
pkg_to_lib_crate. insert ( pkg, crate_id) ;
341
341
}
342
- if tgt. is_proc_macro ( & cargo ) {
342
+ if cargo [ tgt] . is_proc_macro {
343
343
if let Some ( proc_macro) = libproc_macro {
344
344
if crate_graph
345
345
. add_dep (
@@ -351,7 +351,7 @@ impl ProjectWorkspace {
351
351
{
352
352
log:: error!(
353
353
"cyclic dependency on proc_macro for {}" ,
354
- pkg. name( & cargo )
354
+ & cargo [ pkg] . name
355
355
)
356
356
}
357
357
}
@@ -371,15 +371,15 @@ impl ProjectWorkspace {
371
371
// For root projects with dashes in their name,
372
372
// cargo metadata does not do any normalization,
373
373
// so we do it ourselves currently
374
- CrateName :: normalize_dashes ( pkg. name ( & cargo ) ) ,
374
+ CrateName :: normalize_dashes ( & cargo [ pkg] . name ) ,
375
375
to,
376
376
)
377
377
. is_err ( )
378
378
{
379
379
{
380
380
log:: error!(
381
381
"cyclic dependency between targets of {}" ,
382
- pkg. name( & cargo )
382
+ & cargo [ pkg] . name
383
383
)
384
384
}
385
385
}
@@ -391,23 +391,23 @@ impl ProjectWorkspace {
391
391
. add_dep ( from, CrateName :: new ( "core" ) . unwrap ( ) , core)
392
392
. is_err ( )
393
393
{
394
- log:: error!( "cyclic dependency on core for {}" , pkg. name( & cargo ) )
394
+ log:: error!( "cyclic dependency on core for {}" , & cargo [ pkg] . name)
395
395
}
396
396
}
397
397
if let Some ( alloc) = liballoc {
398
398
if crate_graph
399
399
. add_dep ( from, CrateName :: new ( "alloc" ) . unwrap ( ) , alloc)
400
400
. is_err ( )
401
401
{
402
- log:: error!( "cyclic dependency on alloc for {}" , pkg. name( & cargo ) )
402
+ log:: error!( "cyclic dependency on alloc for {}" , & cargo [ pkg] . name)
403
403
}
404
404
}
405
405
if let Some ( std) = libstd {
406
406
if crate_graph
407
407
. add_dep ( from, CrateName :: new ( "std" ) . unwrap ( ) , std)
408
408
. is_err ( )
409
409
{
410
- log:: error!( "cyclic dependency on std for {}" , pkg. name( & cargo ) )
410
+ log:: error!( "cyclic dependency on std for {}" , & cargo [ pkg] . name)
411
411
}
412
412
}
413
413
}
@@ -416,7 +416,7 @@ impl ProjectWorkspace {
416
416
// Now add a dep edge from all targets of upstream to the lib
417
417
// target of downstream.
418
418
for pkg in cargo. packages ( ) {
419
- for dep in pkg. dependencies ( & cargo ) {
419
+ for dep in cargo [ pkg] . dependencies . iter ( ) {
420
420
if let Some ( & to) = pkg_to_lib_crate. get ( & dep. pkg ) {
421
421
for & from in pkg_crates. get ( & pkg) . into_iter ( ) . flatten ( ) {
422
422
if crate_graph
@@ -425,8 +425,8 @@ impl ProjectWorkspace {
425
425
{
426
426
log:: error!(
427
427
"cyclic dependency {} -> {}" ,
428
- pkg. name( & cargo ) ,
429
- dep. pkg. name( & cargo )
428
+ & cargo [ pkg] . name,
429
+ & cargo [ dep. pkg] . name
430
430
)
431
431
}
432
432
}
0 commit comments