From dfd23d6cdd64733eef940a387987f76b265defe3 Mon Sep 17 00:00:00 2001 From: Francisco Gouveia Date: Tue, 17 Mar 2026 12:13:26 +0000 Subject: [PATCH] fix(toolchain): extract manifest fetching out of `show_dist_version()` --- src/cli/rustup_mode.rs | 9 +++++++-- src/toolchain/distributable.rs | 10 +++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/cli/rustup_mode.rs b/src/cli/rustup_mode.rs index 21cb3aaf..cfca6c6c 100644 --- a/src/cli/rustup_mode.rs +++ b/src/cli/rustup_mode.rs @@ -46,7 +46,7 @@ use crate::{ dist::{ AutoInstallMode, DistOptions, PartialToolchainDesc, Profile, TargetTriple, download::DownloadCfg, - manifest::{Component, ComponentStatus}, + manifest::{Component, ComponentStatus, ManifestWithHash}, }, errors::RustupError, install::{InstallMethod, UpdateStatus}, @@ -866,7 +866,12 @@ async fn check_updates(cfg: &Cfg<'_>, opts: CheckOpts) -> Result { async move { let _permit = sem.acquire().await.unwrap(); let current_version = distributable.show_version()?; - let dist_version = distributable.show_dist_version().await?; + let dist_version = match distributable.fetch_dist_manifest().await? { + Some(ManifestWithHash { manifest, .. }) => { + Some(manifest.get_rust_version()?.to_string()) + } + None => None, + }; let mut update_a = false; let template = match (current_version, dist_version) { diff --git a/src/toolchain/distributable.rs b/src/toolchain/distributable.rs index b62bf3d3..b0b8da61 100644 --- a/src/toolchain/distributable.rs +++ b/src/toolchain/distributable.rs @@ -422,18 +422,14 @@ impl<'a> DistributableToolchain<'a> { Ok(()) } - pub async fn show_dist_version(&self) -> anyhow::Result> { - match DownloadCfg::new(self.toolchain.cfg) + pub async fn fetch_dist_manifest(&self) -> anyhow::Result> { + DownloadCfg::new(self.toolchain.cfg) .dl_v2_manifest( Some(&self.toolchain.cfg.get_hash_file(&self.desc, false)?), &self.desc, self.toolchain.cfg, ) - .await? - { - Some(ManifestWithHash { manifest, .. }) => Ok(Some(manifest.get_rust_version()?.to_string())), - None => Ok(None), - } + .await } pub fn show_version(&self) -> anyhow::Result> {