Skip to content

Commit 24738d8

Browse files
epageelchukc
authored andcommitted
refactor download_accessible in package.rs
1 parent 7ec86a1 commit 24738d8

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

src/cargo/core/package.rs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -499,17 +499,18 @@ impl<'gctx> PackageSet<'gctx> {
499499
force_all_targets: ForceAllTargets,
500500
) -> CargoResult<()> {
501501
fn collect_used_deps(
502-
used: &mut BTreeSet<PackageId>,
502+
used: &mut BTreeSet<(PackageId, CompileKind)>,
503503
resolve: &Resolve,
504504
pkg_id: PackageId,
505505
has_dev_units: HasDevUnits,
506-
requested_kinds: &[CompileKind],
506+
requested_kind: CompileKind,
507507
target_data: &RustcTargetData<'_>,
508508
force_all_targets: ForceAllTargets,
509509
) -> CargoResult<()> {
510-
if !used.insert(pkg_id) {
510+
if !used.insert((pkg_id, requested_kind)) {
511511
return Ok(());
512512
}
513+
let requested_kinds = &[requested_kind];
513514
let filtered_deps = PackageSet::filter_deps(
514515
pkg_id,
515516
resolve,
@@ -524,7 +525,7 @@ impl<'gctx> PackageSet<'gctx> {
524525
resolve,
525526
pkg_id,
526527
has_dev_units,
527-
requested_kinds,
528+
requested_kind,
528529
target_data,
529530
force_all_targets,
530531
)?;
@@ -538,16 +539,22 @@ impl<'gctx> PackageSet<'gctx> {
538539
let mut to_download = BTreeSet::new();
539540

540541
for id in root_ids {
541-
collect_used_deps(
542-
&mut to_download,
543-
resolve,
544-
*id,
545-
has_dev_units,
546-
requested_kinds,
547-
target_data,
548-
force_all_targets,
549-
)?;
542+
for requested_kind in requested_kinds {
543+
collect_used_deps(
544+
&mut to_download,
545+
resolve,
546+
*id,
547+
has_dev_units,
548+
*requested_kind,
549+
target_data,
550+
force_all_targets,
551+
)?;
552+
}
550553
}
554+
let to_download = to_download
555+
.into_iter()
556+
.map(|(p, _)| p)
557+
.collect::<BTreeSet<_>>();
551558
self.get_many(to_download.into_iter())?;
552559
Ok(())
553560
}

0 commit comments

Comments
 (0)