Skip to content

Commit 7824840

Browse files
committed
Update snapshots
1 parent c96f18a commit 7824840

File tree

6 files changed

+227
-769
lines changed

6 files changed

+227
-769
lines changed

crates/uv-resolver/src/error.rs

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,7 @@ impl NoSolutionError {
229229
/// The `[max]` sentinel is used to represent the maximum local version of a package, to
230230
/// implement PEP 440 semantics for local version equality. For example, `1.0.0+foo` needs to
231231
/// satisfy `==1.0.0`.
232-
pub(crate) fn simplify_local_version_segments(
233-
mut derivation_tree: ErrorTree,
234-
) -> Option<ErrorTree> {
232+
pub(crate) fn collapse_local_version_segments(derivation_tree: ErrorTree) -> ErrorTree {
235233
/// Remove local versions sentinels (`+[max]`) from the given version ranges.
236234
fn strip_sentinel(versions: &mut Ranges<Version>) {
237235
versions.iter_mut().for_each(|(lower, upper)| {
@@ -321,58 +319,62 @@ impl NoSolutionError {
321319
})
322320
}
323321

324-
match derivation_tree {
325-
DerivationTree::External(External::NotRoot(_, _)) => Some(derivation_tree),
326-
DerivationTree::External(External::NoVersions(_, ref mut versions)) => {
327-
if is_sentinel(versions) {
328-
None
329-
} else {
322+
fn collapse(mut derivation_tree: ErrorTree) -> Option<ErrorTree> {
323+
match derivation_tree {
324+
DerivationTree::External(External::NotRoot(_, _)) => Some(derivation_tree),
325+
DerivationTree::External(External::NoVersions(_, ref mut versions)) => {
326+
if is_sentinel(versions) {
327+
return None;
328+
}
329+
330330
strip_sentinel(versions);
331331
Some(derivation_tree)
332332
}
333-
}
334-
DerivationTree::External(External::FromDependencyOf(
335-
_,
336-
ref mut versions1,
337-
_,
338-
ref mut versions2,
339-
)) => {
340-
strip_sentinel(versions1);
341-
strip_sentinel(versions2);
342-
Some(derivation_tree)
343-
}
344-
DerivationTree::External(External::Custom(_, ref mut versions, _)) => {
345-
strip_sentinel(versions);
346-
Some(derivation_tree)
347-
}
348-
DerivationTree::Derived(mut derived) => {
349-
let cause1 = Self::simplify_local_version_segments((*derived.cause1).clone());
350-
let cause2 = Self::simplify_local_version_segments((*derived.cause2).clone());
351-
match (cause1, cause2) {
352-
(Some(cause1), Some(cause2)) => Some(DerivationTree::Derived(Derived {
353-
cause1: Arc::new(cause1),
354-
cause2: Arc::new(cause2),
355-
terms: std::mem::take(&mut derived.terms)
356-
.into_iter()
357-
.map(|(pkg, mut term)| {
358-
match &mut term {
359-
Term::Positive(versions) => {
360-
strip_sentinel(versions);
361-
}
362-
Term::Negative(versions) => {
363-
strip_sentinel(versions);
333+
DerivationTree::External(External::FromDependencyOf(
334+
_,
335+
ref mut versions1,
336+
_,
337+
ref mut versions2,
338+
)) => {
339+
strip_sentinel(versions1);
340+
strip_sentinel(versions2);
341+
Some(derivation_tree)
342+
}
343+
DerivationTree::External(External::Custom(_, ref mut versions, _)) => {
344+
strip_sentinel(versions);
345+
Some(derivation_tree)
346+
}
347+
DerivationTree::Derived(mut derived) => {
348+
let cause1 = collapse((*derived.cause1).clone());
349+
let cause2 = collapse((*derived.cause2).clone());
350+
match (cause1, cause2) {
351+
(Some(cause1), Some(cause2)) => Some(DerivationTree::Derived(Derived {
352+
cause1: Arc::new(cause1),
353+
cause2: Arc::new(cause2),
354+
terms: std::mem::take(&mut derived.terms)
355+
.into_iter()
356+
.map(|(pkg, mut term)| {
357+
match &mut term {
358+
Term::Positive(versions) => {
359+
strip_sentinel(versions);
360+
}
361+
Term::Negative(versions) => {
362+
strip_sentinel(versions);
363+
}
364364
}
365-
}
366-
(pkg, term)
367-
})
368-
.collect(),
369-
shared_id: derived.shared_id,
370-
})),
371-
(Some(cause), None) | (None, Some(cause)) => Some(cause),
372-
_ => None,
365+
(pkg, term)
366+
})
367+
.collect(),
368+
shared_id: derived.shared_id,
369+
})),
370+
(Some(cause), None) | (None, Some(cause)) => Some(cause),
371+
_ => None,
372+
}
373373
}
374374
}
375375
}
376+
377+
collapse(derivation_tree).expect("derivation tree should contain at least one term")
376378
}
377379

378380
/// Initialize a [`NoSolutionHeader`] for this error.
@@ -403,7 +405,6 @@ impl std::fmt::Display for NoSolutionError {
403405
display_tree(&tree, "Resolver derivation tree before reduction");
404406
}
405407

406-
// simplify_local_version_segments(&mut tree);
407408
collapse_no_versions_of_workspace_members(&mut tree, &self.workspace_members);
408409

409410
if self.workspace_members.len() == 1 {

crates/uv-resolver/src/pubgrub/report.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -496,16 +496,6 @@ impl PubGrubReportFormatter<'_> {
496496
}
497497
}
498498

499-
// fn simplify_locals<'a>(
500-
// &self,
501-
// set: &'a Range<Version>,
502-
// ) -> Cow<'a, Range<Version>> {
503-
// // for (lower, upper) in set.iter() {
504-
// //
505-
// // }
506-
// Cow::Owned(Range::from((Bound::Included(Version::new([0])), Bound::Excluded(Version::new([1])))))
507-
// }
508-
509499
/// Generate the [`PubGrubHints`] for a derivation tree.
510500
///
511501
/// The [`PubGrubHints`] help users resolve errors by providing additional context or modifying

crates/uv-resolver/src/resolver/mod.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1952,10 +1952,9 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
19521952
index_locations: &IndexLocations,
19531953
index_capabilities: &IndexCapabilities,
19541954
) -> ResolveError {
1955-
err = NoSolutionError::simplify_local_version_segments(NoSolutionError::collapse_proxies(
1955+
err = NoSolutionError::collapse_local_version_segments(NoSolutionError::collapse_proxies(
19561956
err,
1957-
))
1958-
.unwrap();
1957+
));
19591958

19601959
let mut unavailable_packages = FxHashMap::default();
19611960
for package in err.packages() {

0 commit comments

Comments
 (0)