Skip to content

Commit

Permalink
refactor(update): Extract rust-version lookup
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Aug 14, 2024
1 parent 7d211e3 commit 91a44a5
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions src/cargo/ops/cargo_update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ use crate::util::toml_mut::upgrade::upgrade_requirement;
use crate::util::{style, OptVersionReq};
use crate::util::{CargoResult, VersionExt};
use anyhow::Context as _;
use cargo_util_schemas::core::PartialVersion;
use itertools::Itertools;
use semver::{Op, Version, VersionReq};
use std::cmp::Ordering;
Expand Down Expand Up @@ -724,14 +725,7 @@ fn status_locking(ws: &Workspace<'_>, num_pkgs: usize) -> CargoResult<()> {
write!(&mut cfg, " latest")?;
}

if ws.resolve_honors_rust_version() {
let rust_version = if let Some(ver) = ws.rust_version() {
ver.clone().into_partial()
} else {
let rustc = ws.gctx().load_global_rustc(Some(ws))?;
let rustc_version = rustc.version.clone().into();
rustc_version
};
if let Some(rust_version) = required_rust_version(ws) {
write!(&mut cfg, " Rust {rust_version}")?;
}
write!(&mut cfg, " compatible version{plural}")?;
Expand All @@ -743,6 +737,20 @@ fn status_locking(ws: &Workspace<'_>, num_pkgs: usize) -> CargoResult<()> {
Ok(())
}

fn required_rust_version(ws: &Workspace<'_>) -> Option<PartialVersion> {
if !ws.resolve_honors_rust_version() {
return None;
}

if let Some(ver) = ws.rust_version() {
Some(ver.clone().into_partial())
} else {
let rustc = ws.gctx().load_global_rustc(Some(ws)).ok()?;
let rustc_version = rustc.version.clone().into();
Some(rustc_version)
}
}

fn report_latest(possibilities: &[IndexSummary], package: PackageId) -> Option<String> {
if possibilities.is_empty() {
return None;
Expand Down

0 comments on commit 91a44a5

Please sign in to comment.