From 8a8e1af513fe77342d68d5826aff05c3afb5963e Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 11 Jun 2024 19:38:15 -0700 Subject: [PATCH] Deduplicate markers during normalization (#4263) ## Summary We need to sort _before_ deduplicating; otherwise, we can't detect adjacent elements, so we aren't guaranteed to deduplicate anything. --- crates/uv-resolver/src/marker.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/uv-resolver/src/marker.rs b/crates/uv-resolver/src/marker.rs index 94fe1db2f..76ad21882 100644 --- a/crates/uv-resolver/src/marker.rs +++ b/crates/uv-resolver/src/marker.rs @@ -123,8 +123,8 @@ pub(crate) fn normalize(tree: &mut MarkerTree) { .fold(PubGrubRange::full(), |acc, range| acc.intersection(range)) }); - reduced.dedup(); reduced.sort(); + reduced.dedup(); *tree = match reduced.len() { 1 => reduced.remove(0), @@ -138,8 +138,8 @@ pub(crate) fn normalize(tree: &mut MarkerTree) { .fold(PubGrubRange::empty(), |acc, range| acc.union(range)) }); - reduced.dedup(); reduced.sort(); + reduced.dedup(); *tree = match reduced.len() { 1 => reduced.remove(0),