uv-resolver: simplify `fork_markers` construction

This doesn't change any behavior. My guess is that this code was
a casualty of refactoring. But basically, it was doing redundant
case analysis and iterating over all resolutions (even though it's
in the branch that can only occur when there is only one
resolution).
This commit is contained in:
Andrew Gallant 2024-11-21 08:56:00 -05:00 committed by Andrew Gallant
parent 2b6d9b2289
commit 085fde8955
1 changed files with 3 additions and 24 deletions

View File

@ -174,33 +174,12 @@ impl ResolverOutput {
// Extract the `Requires-Python` range, if provided.
let requires_python = python.target().clone();
let fork_markers = if let [resolution] = resolutions {
resolution
.env
.try_markers()
.map(|_| {
resolutions
.iter()
.map(|resolution| {
resolution
.env
.try_markers()
.expect("A non-forking resolution exists in forking mode")
.clone()
})
.collect()
})
.unwrap_or_else(Vec::new)
let fork_markers: Vec<MarkerTree> = if let [resolution] = resolutions {
resolution.env.try_markers().cloned().into_iter().collect()
} else {
resolutions
.iter()
.map(|resolution| {
resolution
.env
.try_markers()
.cloned()
.unwrap_or(MarkerTree::TRUE)
})
.map(|resolution| resolution.env.try_markers().cloned().unwrap_or_default())
.collect()
};