From 8ae5c2aee3fa22ac7d11337688e4c1bee3748fe3 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sat, 8 Jun 2024 11:46:08 -0700 Subject: [PATCH] Skip version iteration for non-base packages (#4167) --- crates/uv-resolver/src/resolution/graph.rs | 40 ++++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/crates/uv-resolver/src/resolution/graph.rs b/crates/uv-resolver/src/resolution/graph.rs index 324d391ec..4701e2d06 100644 --- a/crates/uv-resolver/src/resolution/graph.rs +++ b/crates/uv-resolver/src/resolution/graph.rs @@ -85,15 +85,15 @@ impl ResolutionGraph { let mut diagnostics = Vec::new(); for (package, versions) in &resolution.packages { - for version in versions { - match &**package { - PubGrubPackageInner::Package { - name, - extra, - dev, - marker: None, - url: None, - } => { + match &**package { + PubGrubPackageInner::Package { + name, + extra, + dev, + marker: None, + url: None, + } => { + for version in versions { // Create the distribution. let dist = resolution .pins @@ -200,14 +200,16 @@ impl ResolutionGraph { }); inverse.insert((name, version, extra.as_ref(), dev.as_ref()), index); } + } - PubGrubPackageInner::Package { - name, - extra, - dev, - marker: None, - url: Some(url), - } => { + PubGrubPackageInner::Package { + name, + extra, + dev, + marker: None, + url: Some(url), + } => { + for version in versions { // Create the distribution. let dist = Dist::from_url(name.clone(), url_to_precise(url.clone(), git))?; @@ -290,10 +292,10 @@ impl ResolutionGraph { }); inverse.insert((name, version, extra.as_ref(), dev.as_ref()), index); } + } - _ => {} - }; - } + _ => {} + }; } // Add every edge to the graph.