From faedef0c81b3ee5a4b6789df9ca0e69d5c9c8c21 Mon Sep 17 00:00:00 2001 From: Stefanuk12 <42220813+Stefanuk12@users.noreply.github.com> Date: Fri, 25 Apr 2025 19:36:45 +0100 Subject: [PATCH] fix: install mode works with force mode --- src/download_and_link.rs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/download_and_link.rs b/src/download_and_link.rs index d74dff9..704801f 100644 --- a/src/download_and_link.rs +++ b/src/download_and_link.rs @@ -250,25 +250,25 @@ impl Project { let mut downloaded_graph = DependencyGraph::new(); - let graph_to_download = if force { - Cow::Borrowed(graph) - } else { - let mut queue = graph + let mut queue = graph + .iter() + .filter(|(_id, node)| { + node.direct.is_some() && install_dependencies_mode.fits(node.resolved_ty) + }) + .collect::>(); + + let mut correct_deps = DependencyGraph::new(); + while let Some((id, node)) = queue.pop_front() { + correct_deps.insert(id.clone(), node.clone()); + node.dependencies .iter() - .filter(|(_id, node)| { - node.direct.is_some() && install_dependencies_mode.fits(node.resolved_ty) - }) - .collect::>(); - - let mut correct_deps = DependencyGraph::new(); - while let Some((id, node)) = queue.pop_front() { - correct_deps.insert(id.clone(), node.clone()); - node.dependencies - .iter() - .filter_map(|(id, _alias)| graph.get(&id).map(|node| (id, node))) - .for_each(|x| queue.push_back(x)); - } + .filter_map(|(id, _alias)| graph.get(&id).map(|node| (id, node))) + .for_each(|x| queue.push_back(x)); + } + let graph_to_download = if force { + Cow::Borrowed(&correct_deps) + } else { let mut tasks = correct_deps .into_iter() .map(|(id, node)| {