From dd03e4069821e2207c0af21d602a5a55e53ebb40 Mon Sep 17 00:00:00 2001 From: Georg Semmler Date: Tue, 21 Sep 2021 09:05:51 +0200 Subject: [PATCH] Use a more compact way to compare versions --- src/cargo/core/compiler/job_queue.rs | 15 +-------------- src/cargo/ops/fix.rs | 14 ++------------ 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/src/cargo/core/compiler/job_queue.rs b/src/cargo/core/compiler/job_queue.rs index 84361fc7421..d5a59bae04b 100644 --- a/src/cargo/core/compiler/job_queue.rs +++ b/src/cargo/core/compiler/job_queue.rs @@ -1248,21 +1248,8 @@ impl<'cfg> DrainState<'cfg> { } fn back_compat_notice(&self, cx: &Context<'_, '_>, unit: &Unit) -> CargoResult<()> { - fn is_broken_diesel(version: &Version) -> bool { - use semver::{Comparator, Op, Prerelease}; - - Comparator { - op: Op::Less, - major: 1, - minor: Some(4), - patch: Some(8), - pre: Prerelease::EMPTY, - } - .matches(version) - } - if unit.pkg.name() != "diesel" - || !is_broken_diesel(unit.pkg.version()) + || unit.pkg.version() >= &Version::new(1, 4, 8) || cx.bcx.ws.resolve_behavior() == ResolveBehavior::V1 || !unit.pkg.package_id().source_id().is_registry() || !unit.features.is_empty() diff --git a/src/cargo/ops/fix.rs b/src/cargo/ops/fix.rs index 6e1e4ce8e92..b3e08791098 100644 --- a/src/cargo/ops/fix.rs +++ b/src/cargo/ops/fix.rs @@ -50,7 +50,7 @@ use cargo_util::{exit_status_to_string, is_simple_exit_code, paths, ProcessBuild use log::{debug, trace, warn}; use rustfix::diagnostics::Diagnostic; use rustfix::{self, CodeFix}; -use semver::{Comparator, Op, Prerelease}; +use semver::Version; use crate::core::compiler::{CompileKind, RustcTargetData, TargetInfo}; use crate::core::resolver::features::{DiffMap, FeatureOpts, FeatureResolver}; @@ -323,17 +323,7 @@ fn check_resolver_change(ws: &Workspace<'_>, opts: &FixOptions) -> CargoResult<( fn report_maybe_diesel(config: &Config, resolve: &Resolve) -> CargoResult<()> { fn is_broken_diesel(pid: PackageId) -> bool { - if pid.name() != "diesel" { - return false; - } - Comparator { - op: Op::Less, - major: 1, - minor: Some(4), - patch: Some(8), - pre: Prerelease::EMPTY, - } - .matches(pid.version()) + pid.name() == "diesel" && pid.version() < &Version::new(1, 4, 8) } fn is_broken_diesel_migration(pid: PackageId) -> bool {