From 23261b7e2ef0f4107b9594342578311af90b96d7 Mon Sep 17 00:00:00 2001 From: konsti Date: Fri, 16 May 2025 10:34:22 +0200 Subject: [PATCH] Apply some Edition 2024 fixes (#13479) Some `ref`-removal and `use<>` fixes for the Rust Edition 2024 migration, which are also compatible with Rust Edition 2021. --- crates/uv-distribution/src/metadata/lowering.rs | 2 +- crates/uv-python/src/discovery.rs | 2 +- crates/uv-python/src/downloads.rs | 8 ++++---- crates/uv-python/src/managed.rs | 6 +++--- crates/uv-resolver/src/error.rs | 8 ++++---- crates/uv-resolver/src/lock/mod.rs | 6 +++--- crates/uv-resolver/src/pubgrub/package.rs | 11 ++++------- crates/uv-resolver/src/resolution/output.rs | 12 ++++++------ .../uv-resolver/src/resolver/batch_prefetch.rs | 2 +- crates/uv-resolver/src/resolver/mod.rs | 2 +- crates/uv-workspace/src/pyproject_mut.rs | 4 ++-- crates/uv/src/commands/project/add.rs | 12 ++++++------ crates/uv/src/commands/project/mod.rs | 16 ++++++++-------- crates/uv/src/commands/python/pin.rs | 5 +++-- crates/uv/src/commands/run.rs | 2 +- crates/uv/src/commands/tool/common.rs | 2 +- crates/uv/src/commands/tool/install.rs | 4 ++-- 17 files changed, 51 insertions(+), 53 deletions(-) diff --git a/crates/uv-distribution/src/metadata/lowering.rs b/crates/uv-distribution/src/metadata/lowering.rs index a9cc382a6..0e3f10d99 100644 --- a/crates/uv-distribution/src/metadata/lowering.rs +++ b/crates/uv-distribution/src/metadata/lowering.rs @@ -44,7 +44,7 @@ impl LoweredRequirement { locations: &'data IndexLocations, workspace: &'data Workspace, git_member: Option<&'data GitWorkspaceMember<'data>>, - ) -> impl Iterator> + 'data { + ) -> impl Iterator> + use<'data> + 'data { // Identify the source from the `tool.uv.sources` table. let (sources, origin) = if let Some(source) = project_sources.get(&requirement.name) { (Some(source), RequirementOrigin::Project) diff --git a/crates/uv-python/src/discovery.rs b/crates/uv-python/src/discovery.rs index 379b839a8..9b7f6c2dd 100644 --- a/crates/uv-python/src/discovery.rs +++ b/crates/uv-python/src/discovery.rs @@ -563,7 +563,7 @@ fn find_all_minor( implementation: Option<&ImplementationName>, version_request: &VersionRequest, dir: &Path, -) -> impl Iterator { +) -> impl Iterator + use<> { match version_request { &VersionRequest::Any | VersionRequest::Default diff --git a/crates/uv-python/src/downloads.rs b/crates/uv-python/src/downloads.rs index 177e137a1..8d8234edc 100644 --- a/crates/uv-python/src/downloads.rs +++ b/crates/uv-python/src/downloads.rs @@ -268,10 +268,10 @@ impl PythonDownloadRequest { } /// Iterate over all [`PythonDownload`]'s that match this request. - pub fn iter_downloads( - &self, - python_downloads_json_url: Option<&str>, - ) -> Result + use<'_>, Error> { + pub fn iter_downloads<'a>( + &'a self, + python_downloads_json_url: Option<&'a str>, + ) -> Result + use<'a>, Error> { Ok(ManagedPythonDownload::iter_all(python_downloads_json_url)? .filter(move |download| self.satisfied_by_download(download))) } diff --git a/crates/uv-python/src/managed.rs b/crates/uv-python/src/managed.rs index c0f4d2a4e..0144f1647 100644 --- a/crates/uv-python/src/managed.rs +++ b/crates/uv-python/src/managed.rs @@ -191,7 +191,7 @@ impl ManagedPythonInstallations { /// This ensures a consistent ordering across all platforms. pub fn find_all( &self, - ) -> Result, Error> { + ) -> Result + use<>, Error> { let dirs = match fs_err::read_dir(&self.root) { Ok(installation_dirs) => { // Collect sorted directory paths; `read_dir` is not stable across platforms @@ -243,7 +243,7 @@ impl ManagedPythonInstallations { /// Iterate over Python installations that support the current platform. pub fn find_matching_current_platform( &self, - ) -> Result, Error> { + ) -> Result + use<>, Error> { let os = Os::from_env(); let arch = Arch::from_env(); let libc = Libc::from_env()?; @@ -269,7 +269,7 @@ impl ManagedPythonInstallations { /// - The platform metadata cannot be read /// - A directory for the installation cannot be read pub fn find_version<'a>( - &self, + &'a self, version: &'a PythonVersion, ) -> Result + 'a, Error> { Ok(self diff --git a/crates/uv-resolver/src/error.rs b/crates/uv-resolver/src/error.rs index 9d7ce0b4b..49ae26523 100644 --- a/crates/uv-resolver/src/error.rs +++ b/crates/uv-resolver/src/error.rs @@ -834,17 +834,17 @@ fn simplify_derivation_tree_markers( tree: &mut DerivationTree, UnavailableReason>, ) { match tree { - DerivationTree::External(External::NotRoot(ref mut pkg, _)) => { + DerivationTree::External(External::NotRoot(pkg, _)) => { pkg.simplify_markers(python_requirement); } - DerivationTree::External(External::NoVersions(ref mut pkg, _)) => { + DerivationTree::External(External::NoVersions(pkg, _)) => { pkg.simplify_markers(python_requirement); } - DerivationTree::External(External::FromDependencyOf(ref mut pkg1, _, ref mut pkg2, _)) => { + DerivationTree::External(External::FromDependencyOf(pkg1, _, pkg2, _)) => { pkg1.simplify_markers(python_requirement); pkg2.simplify_markers(python_requirement); } - DerivationTree::External(External::Custom(ref mut pkg, _, _)) => { + DerivationTree::External(External::Custom(pkg, _, _)) => { pkg.simplify_markers(python_requirement); } DerivationTree::Derived(derived) => { diff --git a/crates/uv-resolver/src/lock/mod.rs b/crates/uv-resolver/src/lock/mod.rs index bf999b5dd..2803692cf 100644 --- a/crates/uv-resolver/src/lock/mod.rs +++ b/crates/uv-resolver/src/lock/mod.rs @@ -824,10 +824,10 @@ impl Lock { let mut table = InlineTable::new(); table.insert("package", Value::from(item.package().to_string())); match item.conflict() { - ConflictPackage::Extra(ref extra) => { + ConflictPackage::Extra(extra) => { table.insert("extra", Value::from(extra.to_string())); } - ConflictPackage::Group(ref group) => { + ConflictPackage::Group(group) => { table.insert("group", Value::from(group.to_string())); } } @@ -4527,7 +4527,7 @@ impl From for Hashes { /// Convert a [`FileLocation`] into a normalized [`UrlString`]. fn normalize_file_location(location: &FileLocation) -> Result { match location { - FileLocation::AbsoluteUrl(ref absolute) => Ok(absolute.without_fragment()), + FileLocation::AbsoluteUrl(absolute) => Ok(absolute.without_fragment()), FileLocation::RelativeUrl(_, _) => Ok(normalize_url(location.to_url()?)), } } diff --git a/crates/uv-resolver/src/pubgrub/package.rs b/crates/uv-resolver/src/pubgrub/package.rs index d5285e840..8c40f8080 100644 --- a/crates/uv-resolver/src/pubgrub/package.rs +++ b/crates/uv-resolver/src/pubgrub/package.rs @@ -189,10 +189,9 @@ impl PubGrubPackage { | PubGrubPackageInner::Dev { .. } | PubGrubPackageInner::Marker { .. } => None, PubGrubPackageInner::Package { - extra: Some(ref extra), - .. + extra: Some(extra), .. } - | PubGrubPackageInner::Extra { ref extra, .. } => Some(extra), + | PubGrubPackageInner::Extra { extra, .. } => Some(extra), } } @@ -210,10 +209,8 @@ impl PubGrubPackage { | PubGrubPackageInner::Package { dev: None, .. } | PubGrubPackageInner::Extra { .. } | PubGrubPackageInner::Marker { .. } => None, - PubGrubPackageInner::Package { - dev: Some(ref dev), .. - } - | PubGrubPackageInner::Dev { ref dev, .. } => Some(dev), + PubGrubPackageInner::Package { dev: Some(dev), .. } + | PubGrubPackageInner::Dev { dev, .. } => Some(dev), } } diff --git a/crates/uv-resolver/src/resolution/output.rs b/crates/uv-resolver/src/resolution/output.rs index dbfffe0b6..81f48692b 100644 --- a/crates/uv-resolver/src/resolution/output.rs +++ b/crates/uv-resolver/src/resolution/output.rs @@ -778,7 +778,7 @@ impl ResolverOutput { for node in self.graph.node_weights() { let annotated_dist = match node { ResolutionGraphNode::Root => continue, - ResolutionGraphNode::Dist(ref annotated_dist) => annotated_dist, + ResolutionGraphNode::Dist(annotated_dist) => annotated_dist, }; name_to_markers .entry(&annotated_dist.name) @@ -787,18 +787,18 @@ impl ResolverOutput { } let mut dupes = vec![]; for (name, marker_trees) in name_to_markers { - for (i, (version1, &marker1)) in marker_trees.iter().enumerate() { - for (version2, &marker2) in &marker_trees[i + 1..] { + for (i, (version1, marker1)) in marker_trees.iter().enumerate() { + for (version2, marker2) in &marker_trees[i + 1..] { if version1 == version2 { continue; } - if !marker1.is_disjoint(marker2) { + if !marker1.is_disjoint(**marker2) { dupes.push(ConflictingDistributionError { name: name.clone(), version1: (*version1).clone(), version2: (*version2).clone(), - marker1, - marker2, + marker1: **marker1, + marker2: **marker2, }); } } diff --git a/crates/uv-resolver/src/resolver/batch_prefetch.rs b/crates/uv-resolver/src/resolver/batch_prefetch.rs index 104d080e1..37811c477 100644 --- a/crates/uv-resolver/src/resolver/batch_prefetch.rs +++ b/crates/uv-resolver/src/resolver/batch_prefetch.rs @@ -219,7 +219,7 @@ impl BatchPrefetcherRunner { selector: &CandidateSelector, env: &ResolverEnvironment, ) -> Result<(), ResolveError> { - let VersionsResponse::Found(ref version_map) = &**versions_response else { + let VersionsResponse::Found(version_map) = &**versions_response else { return Ok(()); }; diff --git a/crates/uv-resolver/src/resolver/mod.rs b/crates/uv-resolver/src/resolver/mod.rs index 0cb914415..77b4694aa 100644 --- a/crates/uv-resolver/src/resolver/mod.rs +++ b/crates/uv-resolver/src/resolver/mod.rs @@ -519,7 +519,7 @@ impl ResolverState self.set_project_dependency_minimum_version()?, DependencyType::Dev => self.set_dev_dependency_minimum_version()?, - DependencyType::Optional(ref extra) => { + DependencyType::Optional(extra) => { self.set_optional_dependency_minimum_version(extra)? } - DependencyType::Group(ref group) => { + DependencyType::Group(group) => { self.set_dependency_group_requirement_minimum_version(group)? } }; diff --git a/crates/uv/src/commands/project/add.rs b/crates/uv/src/commands/project/add.rs index d0d12a9b2..70fa8b088 100644 --- a/crates/uv/src/commands/project/add.rs +++ b/crates/uv/src/commands/project/add.rs @@ -578,7 +578,7 @@ fn edits( AddTarget::Script(_, _) | AddTarget::Project(_, _) if raw => { (uv_pep508::Requirement::from(requirement), None) } - AddTarget::Script(ref script, _) => { + AddTarget::Script(script, _) => { let script_path = std::path::absolute(&script.path)?; let script_dir = script_path.parent().expect("script path has no parent"); @@ -595,7 +595,7 @@ fn edits( existing_sources, )? } - AddTarget::Project(ref project, _) => { + AddTarget::Project(project, _) => { let existing_sources = project .pyproject_toml() .tool @@ -701,10 +701,10 @@ fn edits( let edit = match &dependency_type { DependencyType::Production => toml.add_dependency(&requirement, source.as_ref())?, DependencyType::Dev => toml.add_dev_dependency(&requirement, source.as_ref())?, - DependencyType::Optional(ref extra) => { + DependencyType::Optional(extra) => { toml.add_optional_dependency(extra, &requirement, source.as_ref())? } - DependencyType::Group(ref group) => { + DependencyType::Group(group) => { toml.add_dependency_group_requirement(group, &requirement, source.as_ref())? } }; @@ -908,12 +908,12 @@ async fn lock_and_sync( let dev = DependencyGroups::from_dev_mode(DevMode::Include); (extras, dev) } - DependencyType::Optional(ref extra_name) => { + DependencyType::Optional(extra_name) => { let extras = ExtrasSpecification::from_extra(vec![extra_name.clone()]); let dev = DependencyGroups::from_dev_mode(DevMode::Exclude); (extras, dev) } - DependencyType::Group(ref group_name) => { + DependencyType::Group(group_name) => { let extras = ExtrasSpecification::from_extra(vec![]); let dev = DependencyGroups::from_group(group_name.clone()); (extras, dev) diff --git a/crates/uv/src/commands/project/mod.rs b/crates/uv/src/commands/project/mod.rs index 70eedb0f6..e606f3afd 100644 --- a/crates/uv/src/commands/project/mod.rs +++ b/crates/uv/src/commands/project/mod.rs @@ -271,8 +271,8 @@ impl std::fmt::Display for ConflictError { .set .iter() .map(|item| match item.conflict() { - ConflictPackage::Extra(ref extra) => format!("`{}[{}]`", item.package(), extra), - ConflictPackage::Group(ref group) => format!("`{}:{}`", item.package(), group), + ConflictPackage::Extra(extra) => format!("`{}[{}]`", item.package(), extra), + ConflictPackage::Group(group) => format!("`{}:{}`", item.package(), group), }) .join(", "); @@ -289,7 +289,7 @@ impl std::fmt::Display for ConflictError { self.conflicts .iter() .map(|conflict| match conflict { - ConflictPackage::Extra(ref extra) => format!("`{extra}`"), + ConflictPackage::Extra(extra) => format!("`{extra}`"), ConflictPackage::Group(..) => unreachable!(), }) .collect() @@ -312,10 +312,10 @@ impl std::fmt::Display for ConflictError { self.conflicts .iter() .map(|conflict| match conflict { - ConflictPackage::Group(ref group) + ConflictPackage::Group(group) if self.dev.contains_because_default(group) => format!("`{group}` (enabled by default)"), - ConflictPackage::Group(ref group) => format!("`{group}`"), + ConflictPackage::Group(group) => format!("`{group}`"), ConflictPackage::Extra(..) => unreachable!(), }) .collect() @@ -331,13 +331,13 @@ impl std::fmt::Display for ConflictError { .enumerate() .map(|(i, conflict)| { let conflict = match conflict { - ConflictPackage::Extra(ref extra) => format!("extra `{extra}`"), - ConflictPackage::Group(ref group) + ConflictPackage::Extra(extra) => format!("extra `{extra}`"), + ConflictPackage::Group(group) if self.dev.contains_because_default(group) => { format!("group `{group}` (enabled by default)") } - ConflictPackage::Group(ref group) => format!("group `{group}`"), + ConflictPackage::Group(group) => format!("group `{group}`"), }; if i == 0 { capitalize(&conflict) diff --git a/crates/uv/src/commands/python/pin.rs b/crates/uv/src/commands/python/pin.rs index dc11b3fe7..48c15c1b5 100644 --- a/crates/uv/src/commands/python/pin.rs +++ b/crates/uv/src/commands/python/pin.rs @@ -186,8 +186,9 @@ pub(crate) async fn pin( fn pep440_version_from_request(request: &PythonRequest) -> Option { let version_request = match request { - PythonRequest::Version(ref version) - | PythonRequest::ImplementationVersion(_, ref version) => version, + PythonRequest::Version(version) | PythonRequest::ImplementationVersion(_, version) => { + version + } PythonRequest::Key(download_request) => download_request.version()?, _ => { return None; diff --git a/crates/uv/src/commands/run.rs b/crates/uv/src/commands/run.rs index ddbd2bb02..49b4cb070 100644 --- a/crates/uv/src/commands/run.rs +++ b/crates/uv/src/commands/run.rs @@ -57,7 +57,7 @@ pub(crate) async fn run_to_completion(mut handle: Child) -> anyhow::Result Option<()> { match self { - PlatformSpecificSignal::Signal(ref mut signal) => signal.recv().await, + PlatformSpecificSignal::Signal(signal) => signal.recv().await, PlatformSpecificSignal::Dummy => std::future::pending().await, } } diff --git a/crates/uv/src/commands/tool/common.rs b/crates/uv/src/commands/tool/common.rs index d4ff8b1a8..2c3457273 100644 --- a/crates/uv/src/commands/tool/common.rs +++ b/crates/uv/src/commands/tool/common.rs @@ -81,7 +81,7 @@ pub(crate) async fn refine_interpreter( python_downloads: PythonDownloads, cache: &Cache, ) -> anyhow::Result, ProjectError> { - let pip::operations::Error::Resolve(uv_resolver::ResolveError::NoSolution(ref no_solution_err)) = + let pip::operations::Error::Resolve(uv_resolver::ResolveError::NoSolution(no_solution_err)) = err else { return Ok(None); diff --git a/crates/uv/src/commands/tool/install.rs b/crates/uv/src/commands/tool/install.rs index 5c4f5649a..15f92519a 100644 --- a/crates/uv/src/commands/tool/install.rs +++ b/crates/uv/src/commands/tool/install.rs @@ -161,7 +161,7 @@ pub(crate) async fn install( requirement } // Ex) `ruff@0.6.0` - Target::Version(.., name, ref extras, ref version) => { + Target::Version(.., name, extras, version) => { if editable { bail!("`--editable` is only supported for local packages"); } @@ -182,7 +182,7 @@ pub(crate) async fn install( } } // Ex) `ruff@latest` - Target::Latest(.., name, ref extras) => { + Target::Latest(.., name, extras) => { if editable { bail!("`--editable` is only supported for local packages"); }