fix(resolver): handle infinite loop in resolver
Some checks are pending
Debug / Get build version (push) Waiting to run
Debug / Build for linux-aarch64 (push) Blocked by required conditions
Debug / Build for linux-x86_64 (push) Blocked by required conditions
Debug / Build for macos-aarch64 (push) Blocked by required conditions
Debug / Build for macos-x86_64 (push) Blocked by required conditions
Debug / Build for windows-x86_64 (push) Blocked by required conditions
Test & Lint / lint (push) Waiting to run

Fixes a recursive loop in the resolver when resolving
dependencies that depend on themselves from
an existing lockfile.
This commit is contained in:
daimond113 2025-01-16 23:18:23 +01:00
parent 805a257a76
commit 3d659161e6
No known key found for this signature in database
GPG key ID: 3A8ECE51328B513C

View file

@ -124,6 +124,12 @@ impl Project {
if let Some(dep_node) = previous_graph.get(dep_id) {
tracing::debug!("resolved sub-dependency {dep_id}");
if graph.contains_key(dep_id) {
tracing::debug!(
"sub-dependency {dep_id} already resolved in new graph",
);
continue;
}
insert_node(&mut graph, dep_id, dep_node.clone(), false);
dep_node