diff options
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/problem.rs')
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/problem.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/shirabe/src/dependency_resolver/problem.rs b/crates/shirabe/src/dependency_resolver/problem.rs index 740909f..7312bda 100644 --- a/crates/shirabe/src/dependency_resolver/problem.rs +++ b/crates/shirabe/src/dependency_resolver/problem.rs @@ -757,10 +757,13 @@ impl Problem { } } - // TODO(phase-c): filtering out packages from a LockArrayRepository needs the handle's - // repository back-reference (phase-c handoff item #1), which is not yet available; keep - // all packages for now. - let non_locked_packages: Vec<&BasePackageHandle> = packages.iter().collect(); + let non_locked_packages: Vec<&BasePackageHandle> = packages + .iter() + .filter(|p| { + !p.get_repository() + .map_or(false, |r| r.is::<LockArrayRepository>()) + }) + .collect(); if non_locked_packages.len() == 0 { return ( |
