Skip to content

Commit

Permalink
Reapply "Upgrade to Rust 1.83 (#9511)"
Browse files Browse the repository at this point in the history
This reverts commit 6cc7a56.
  • Loading branch information
zanieb committed Dec 11, 2024
1 parent 80d4167 commit e7fa416
Show file tree
Hide file tree
Showing 31 changed files with 71 additions and 64 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ resolver = "2"

[workspace.package]
edition = "2021"
rust-version = "1.81"
rust-version = "1.83"
homepage = "https://pypi.org/project/uv/"
documentation = "https://pypi.org/project/uv/"
repository = "https://github.com/astral-sh/uv"
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-cache/src/wheel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub enum WheelCache<'a> {
Git(&'a Url, &'a str),
}

impl<'a> WheelCache<'a> {
impl WheelCache<'_> {
/// The root directory for a cache bucket.
pub fn root(&self) -> PathBuf {
match self {
Expand Down
1 change: 1 addition & 0 deletions crates/uv-client/src/httpcache/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -992,6 +992,7 @@ impl ArchivedCachePolicy {
/// This dictates what the caller should do next by indicating whether the
/// cached response is stale or not.
#[derive(Debug)]
#[allow(clippy::large_enum_variant)]
pub enum BeforeRequest {
/// The cached response is still fresh, and the caller may return the
/// cached response without issuing an HTTP requests.
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-client/src/remote_metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ pub(crate) async fn wheel_metadata_from_remote_zip(
// The zip archive uses as BufReader which reads in chunks of 8192. To ensure we prefetch
// enough data we round the size up to the nearest multiple of the buffer size.
let buffer_size = 8192;
let size = ((size + buffer_size - 1) / buffer_size) * buffer_size;
let size = size.div_ceil(buffer_size) * buffer_size;

// Fetch the bytes from the zip archive that contain the requested file.
reader
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-configuration/src/name_specifiers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ impl<'de> serde::Deserialize<'de> for PackageNameSpecifier {
{
struct Visitor;

impl<'de> serde::de::Visitor<'de> for Visitor {
impl serde::de::Visitor<'_> for Visitor {
type Value = PackageNameSpecifier;

fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-distribution-types/src/buildable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ pub enum SourceUrl<'a> {
Directory(DirectorySourceUrl<'a>),
}

impl<'a> SourceUrl<'a> {
impl SourceUrl<'_> {
/// Return the [`Url`] of the source.
pub fn url(&self) -> &Url {
match self {
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-distribution-types/src/hash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ pub enum HashPolicy<'a> {
Validate(&'a [HashDigest]),
}

impl<'a> HashPolicy<'a> {
impl HashPolicy<'_> {
/// Returns `true` if the hash policy is `None`.
pub fn is_none(&self) -> bool {
matches!(self, Self::None)
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-distribution-types/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ pub enum VersionOrUrlRef<'a, T: Pep508Url = VerbatimUrl> {
Url(&'a T),
}

impl<'a, T: Pep508Url> VersionOrUrlRef<'a, T> {
impl<T: Pep508Url> VersionOrUrlRef<'_, T> {
/// If it is a URL, return its value.
pub fn url(&self) -> Option<&T> {
match self {
Expand Down Expand Up @@ -140,7 +140,7 @@ pub enum InstalledVersion<'a> {
Url(&'a Url, &'a Version),
}

impl<'a> InstalledVersion<'a> {
impl InstalledVersion<'_> {
/// If it is a URL, return its value.
pub fn url(&self) -> Option<&Url> {
match self {
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-distribution/src/metadata/lowering.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ impl LoweredRequirement {
if workspace.packages().contains_key(&requirement.name) {
// And it's not a recursive self-inclusion (extras that activate other extras), e.g.
// `framework[machine_learning]` depends on `framework[cuda]`.
if !project_name.is_some_and(|project_name| *project_name == requirement.name) {
if project_name.is_none_or(|project_name| *project_name != requirement.name) {
// It must be declared as a workspace source.
let Some(sources) = sources.as_ref() else {
// No sources were declared for the workspace package.
Expand Down Expand Up @@ -141,7 +141,7 @@ impl LoweredRequirement {
// Support recursive editable inclusions.
if has_sources
&& requirement.version_or_url.is_none()
&& !project_name.is_some_and(|project_name| *project_name == requirement.name)
&& project_name.is_none_or(|project_name| *project_name != requirement.name)
{
warn_user_once!(
"Missing version constraint (e.g., a lower bound) for `{}`",
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-distribution/src/source/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1755,7 +1755,7 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
.map_err(Error::CacheWrite)?;
if let Err(err) = rename_with_retry(extracted, target).await {
// If the directory already exists, accept it.
if target.is_dir() {
if err.kind() == std::io::ErrorKind::AlreadyExists {
warn!("Directory already exists: {}", target.display());
} else {
return Err(Error::CacheWrite(err));
Expand Down Expand Up @@ -1816,7 +1816,7 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
.map_err(Error::CacheWrite)?;
if let Err(err) = rename_with_retry(extracted, target).await {
// If the directory already exists, accept it.
if target.is_dir() {
if err.kind() == std::io::ErrorKind::AlreadyExists {
warn!("Directory already exists: {}", target.display());
} else {
return Err(Error::CacheWrite(err));
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-extract/src/hash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ where
}
}

impl<'a, R> tokio::io::AsyncRead for HashReader<'a, R>
impl<R> tokio::io::AsyncRead for HashReader<'_, R>
where
R: tokio::io::AsyncRead + Unpin,
{
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-install-wheel/src/linker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ fn clone_recursive(
match attempt {
Attempt::Initial => {
if let Err(err) = reflink::reflink(&from, &to) {
if matches!(err.kind(), std::io::ErrorKind::AlreadyExists) {
if err.kind() == std::io::ErrorKind::AlreadyExists {
// If cloning/copying fails and the directory exists already, it must be merged recursively.
if entry.file_type()?.is_dir() {
for entry in fs::read_dir(from)? {
Expand Down Expand Up @@ -423,7 +423,7 @@ fn clone_recursive(
}
Attempt::Subsequent => {
if let Err(err) = reflink::reflink(&from, &to) {
if matches!(err.kind(), std::io::ErrorKind::AlreadyExists) {
if err.kind() == std::io::ErrorKind::AlreadyExists {
// If cloning/copying fails and the directory exists already, it must be merged recursively.
if entry.file_type()?.is_dir() {
for entry in fs::read_dir(from)? {
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-options-metadata/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ struct SerializeVisitor<'a> {
entries: &'a mut BTreeMap<String, OptionField>,
}

impl<'a> Visit for SerializeVisitor<'a> {
impl Visit for SerializeVisitor<'_> {
fn record_set(&mut self, name: &str, set: OptionSet) {
// Collect the entries of the set.
let mut entries = BTreeMap::new();
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-pep440/src/version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3926,7 +3926,7 @@ mod tests {
/// assertion failure messages.
struct VersionBloatedDebug<'a>(&'a Version);

impl<'a> std::fmt::Debug for VersionBloatedDebug<'a> {
impl std::fmt::Debug for VersionBloatedDebug<'_> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Version")
.field("epoch", &self.0.epoch())
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-pep508/src/marker/tree.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1295,7 +1295,7 @@ pub struct MarkerTreeDebugGraph<'a> {
marker: &'a MarkerTree,
}

impl<'a> fmt::Debug for MarkerTreeDebugGraph<'a> {
impl fmt::Debug for MarkerTreeDebugGraph<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.marker.fmt_graph(f, 0)
}
Expand All @@ -1312,7 +1312,7 @@ pub struct MarkerTreeDebugRaw<'a> {
marker: &'a MarkerTree,
}

impl<'a> fmt::Debug for MarkerTreeDebugRaw<'a> {
impl fmt::Debug for MarkerTreeDebugRaw<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let node = INTERNER.shared.node(self.marker.0);
f.debug_tuple("MarkerTreeDebugRaw").field(node).finish()
Expand Down
6 changes: 3 additions & 3 deletions crates/uv-pypi-types/src/conflicts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ impl<'a> From<(&'a PackageName, &'a GroupName)> for ConflictItemRef<'a> {
}
}

impl<'a> hashbrown::Equivalent<ConflictItem> for ConflictItemRef<'a> {
impl hashbrown::Equivalent<ConflictItem> for ConflictItemRef<'_> {
fn equivalent(&self, key: &ConflictItem) -> bool {
key.as_ref() == *self
}
Expand Down Expand Up @@ -335,7 +335,7 @@ impl<'a> From<&'a GroupName> for ConflictPackageRef<'a> {
}
}

impl<'a> PartialEq<ConflictPackage> for ConflictPackageRef<'a> {
impl PartialEq<ConflictPackage> for ConflictPackageRef<'_> {
fn eq(&self, other: &ConflictPackage) -> bool {
other.as_ref() == *self
}
Expand All @@ -347,7 +347,7 @@ impl<'a> PartialEq<ConflictPackageRef<'a>> for ConflictPackage {
}
}

impl<'a> hashbrown::Equivalent<ConflictPackage> for ConflictPackageRef<'a> {
impl hashbrown::Equivalent<ConflictPackage> for ConflictPackageRef<'_> {
fn equivalent(&self, key: &ConflictPackage) -> bool {
key.as_ref() == *self
}
Expand Down
36 changes: 24 additions & 12 deletions crates/uv-pypi-types/src/metadata/metadata23.rs
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ impl Metadata23 {
writer.push_str(&format!("{}{}\n", " ".repeat(key.len() + 2), line));
}
}
fn write_opt_str(writer: &mut String, key: &str, value: &Option<impl Display>) {
fn write_opt_str(writer: &mut String, key: &str, value: Option<&impl Display>) {
if let Some(value) = value {
write_str(writer, key, value);
}
Expand All @@ -233,28 +233,40 @@ impl Metadata23 {
write_all(&mut writer, "Platform", &self.platforms);
write_all(&mut writer, "Supported-Platform", &self.supported_platforms);
write_all(&mut writer, "Summary", &self.summary);
write_opt_str(&mut writer, "Keywords", &self.keywords);
write_opt_str(&mut writer, "Home-Page", &self.home_page);
write_opt_str(&mut writer, "Download-URL", &self.download_url);
write_opt_str(&mut writer, "Author", &self.author);
write_opt_str(&mut writer, "Author-email", &self.author_email);
write_opt_str(&mut writer, "License", &self.license);
write_opt_str(&mut writer, "License-Expression", &self.license_expression);
write_opt_str(&mut writer, "Keywords", self.keywords.as_ref());
write_opt_str(&mut writer, "Home-Page", self.home_page.as_ref());
write_opt_str(&mut writer, "Download-URL", self.download_url.as_ref());
write_opt_str(&mut writer, "Author", self.author.as_ref());
write_opt_str(&mut writer, "Author-email", self.author_email.as_ref());
write_opt_str(&mut writer, "License", self.license.as_ref());
write_opt_str(
&mut writer,
"License-Expression",
self.license_expression.as_ref(),
);
write_all(&mut writer, "License-File", &self.license_files);
write_all(&mut writer, "Classifier", &self.classifiers);
write_all(&mut writer, "Requires-Dist", &self.requires_dist);
write_all(&mut writer, "Provides-Dist", &self.provides_dist);
write_all(&mut writer, "Obsoletes-Dist", &self.obsoletes_dist);
write_opt_str(&mut writer, "Maintainer", &self.maintainer);
write_opt_str(&mut writer, "Maintainer-email", &self.maintainer_email);
write_opt_str(&mut writer, "Requires-Python", &self.requires_python);
write_opt_str(&mut writer, "Maintainer", self.maintainer.as_ref());
write_opt_str(
&mut writer,
"Maintainer-email",
self.maintainer_email.as_ref(),
);
write_opt_str(
&mut writer,
"Requires-Python",
self.requires_python.as_ref(),
);
write_all(&mut writer, "Requires-External", &self.requires_external);
write_all(&mut writer, "Project-URL", &self.project_urls);
write_all(&mut writer, "Provides-Extra", &self.provides_extras);
write_opt_str(
&mut writer,
"Description-Content-Type",
&self.description_content_type,
self.description_content_type.as_ref(),
);
write_all(&mut writer, "Dynamic", &self.dynamic);

Expand Down
8 changes: 4 additions & 4 deletions crates/uv-python/src/discovery.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1193,17 +1193,17 @@ pub(crate) fn is_windows_store_shim(path: &Path) -> bool {
}

// Ex) `WindowsApps`
if !components
if components
.next()
.is_some_and(|component| component.as_os_str() == "WindowsApps")
.is_none_or(|component| component.as_os_str() != "WindowsApps")
{
return false;
}

// Ex) `Microsoft`
if !components
if components
.next()
.is_some_and(|component| component.as_os_str() == "Microsoft")
.is_none_or(|component| component.as_os_str() != "Microsoft")
{
return false;
}
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-python/src/installation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ impl PythonInstallation {
python_install_mirror: Option<&str>,
pypy_install_mirror: Option<&str>,
) -> Result<Self, Error> {
let request = request.unwrap_or_else(|| &PythonRequest::Default);
let request = request.unwrap_or(&PythonRequest::Default);

// Search for the installation
match Self::find(request, environments, preference, cache) {
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-resolver/src/candidate_selector.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ impl CandidateSelector {
is_excluded: bool,
index: Option<&'a IndexUrl>,
env: &ResolverEnvironment,
) -> Option<Candidate> {
) -> Option<Candidate<'a>> {
// In the branches, we "sort" the preferences by marker-matching through an iterator that
// first has the matching half and then the mismatching half.
let preferences_match = preferences
Expand Down Expand Up @@ -282,7 +282,7 @@ impl CandidateSelector {
range: &Range<Version>,
version_maps: &'a [VersionMap],
env: &ResolverEnvironment,
) -> Option<Candidate> {
) -> Option<Candidate<'a>> {
trace!(
"Selecting candidate for {package_name} with range {range} with {} remote versions",
version_maps.iter().map(VersionMap::len).sum::<usize>(),
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,7 @@ impl<'range> From<&'range Range<Version>> for SentinelRange<'range> {
}
}

impl<'range> SentinelRange<'range> {
impl SentinelRange<'_> {
/// Returns `true` if the range appears to be, e.g., `>1.0.0, <1.0.0+[max]`.
pub fn is_sentinel(&self) -> bool {
self.0.iter().all(|(lower, upper)| {
Expand Down
4 changes: 2 additions & 2 deletions crates/uv-resolver/src/lock/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2752,7 +2752,7 @@ impl<'de> serde::de::Deserialize<'de> for RegistrySource {
{
struct Visitor;

impl<'de> serde::de::Visitor<'de> for Visitor {
impl serde::de::Visitor<'_> for Visitor {
type Value = RegistrySource;

fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
Expand Down Expand Up @@ -2973,7 +2973,7 @@ impl SourceDist {
) -> Result<Option<SourceDist>, LockError> {
// Reject distributions from registries that don't match the index URL, as can occur with
// `--find-links`.
if !index.is_some_and(|index| *index == reg_dist.index) {
if index.is_none_or(|index| *index != reg_dist.index) {
return Ok(None);
}

Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/pubgrub/dependencies.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ impl PubGrubDependency {
// Detect self-dependencies.
if dev.is_none() {
debug_assert!(
!source_name.is_some_and(|source_name| source_name == name),
source_name.is_none_or(|source_name| source_name != name),
"extras not flattened for {name}"
);
}
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-scripts/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ impl ScriptTag {
let mut lines = contents.lines();

// Ensure that the first line is exactly `# /// script`.
if !lines.next().is_some_and(|line| line == "# /// script") {
if lines.next().is_none_or(|line| line != "# /// script") {
return Ok(None);
}

Expand Down
9 changes: 1 addition & 8 deletions crates/uv-settings/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,7 @@ impl FilesystemOptions {
Ok(Some(Self(options)))
}
Err(Error::Io(err)) if err.kind() == std::io::ErrorKind::NotFound => Ok(None),
Err(_) if !dir.is_dir() => {
// Ex) `XDG_CONFIG_HOME=/dev/null`
tracing::debug!(
"User configuration directory `{}` does not exist or is not a directory",
dir.display()
);
Ok(None)
}
Err(Error::Io(err)) if err.kind() == std::io::ErrorKind::NotADirectory => Ok(None),
Err(err) => Err(err),
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-types/src/builds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pub enum BuildIsolation<'a> {
SharedPackage(&'a PythonEnvironment, &'a [PackageName]),
}

impl<'a> BuildIsolation<'a> {
impl BuildIsolation<'_> {
/// Returns `true` if build isolation is enforced for the given package name.
pub fn is_isolated(&self, package: Option<&PackageName>) -> bool {
match self {
Expand Down
Loading

0 comments on commit e7fa416

Please sign in to comment.