Skip to content

Commit 497c8b6

Browse files
committed
refactor(update): Extract rust-version lookup
1 parent ad4f647 commit 497c8b6

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/cargo/ops/cargo_update.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use crate::util::toml_mut::upgrade::upgrade_requirement;
1616
use crate::util::{style, OptVersionReq};
1717
use crate::util::{CargoResult, VersionExt};
1818
use anyhow::Context as _;
19+
use cargo_util_schemas::core::PartialVersion;
1920
use itertools::Itertools;
2021
use semver::{Op, Version, VersionReq};
2122
use std::cmp::Ordering;
@@ -724,14 +725,7 @@ fn status_locking(ws: &Workspace<'_>, num_pkgs: usize) -> CargoResult<()> {
724725
write!(&mut cfg, " latest")?;
725726
}
726727

727-
if ws.resolve_honors_rust_version() {
728-
let rust_version = if let Some(ver) = ws.rust_version() {
729-
ver.clone().into_partial()
730-
} else {
731-
let rustc = ws.gctx().load_global_rustc(Some(ws))?;
732-
let rustc_version = rustc.version.clone().into();
733-
rustc_version
734-
};
728+
if let Some(rust_version) = required_rust_version(ws) {
735729
write!(&mut cfg, " Rust {rust_version}")?;
736730
}
737731
write!(&mut cfg, " compatible version{plural}")?;
@@ -743,6 +737,20 @@ fn status_locking(ws: &Workspace<'_>, num_pkgs: usize) -> CargoResult<()> {
743737
Ok(())
744738
}
745739

740+
fn required_rust_version(ws: &Workspace<'_>) -> Option<PartialVersion> {
741+
if !ws.resolve_honors_rust_version() {
742+
return None;
743+
}
744+
745+
if let Some(ver) = ws.rust_version() {
746+
Some(ver.clone().into_partial())
747+
} else {
748+
let rustc = ws.gctx().load_global_rustc(Some(ws)).ok()?;
749+
let rustc_version = rustc.version.clone().into();
750+
Some(rustc_version)
751+
}
752+
}
753+
746754
fn report_latest(possibilities: &[IndexSummary], package: PackageId) -> Option<String> {
747755
possibilities
748756
.iter()

0 commit comments

Comments
 (0)