Skip to content

Commit 30c2900

Browse files
committed
Move toolchain resolution into Cfg method
1 parent 4d4fdc9 commit 30c2900

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

src/cli/rustup_mode.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -899,13 +899,7 @@ async fn which(
899899
binary: &str,
900900
toolchain: Option<ResolvableToolchainName>,
901901
) -> Result<utils::ExitCode> {
902-
let binary_path = if let Some(toolchain) = toolchain {
903-
let desc = toolchain.resolve(&cfg.get_default_host_triple()?)?;
904-
Toolchain::new(cfg, desc.into())?.binary_file(binary)
905-
} else {
906-
let (toolchain, _) = cfg.find_or_install_active_toolchain().await?;
907-
toolchain.binary_file(binary)
908-
};
902+
let binary_path = cfg.resolve_toolchain(toolchain).await?.binary_file(binary);
909903

910904
utils::assert_is_file(&binary_path)?;
911905

src/config.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,19 @@ impl<'a> Cfg<'a> {
726726
.rustc_version())
727727
}
728728

729+
pub(crate) async fn resolve_toolchain(
730+
&self,
731+
name: Option<ResolvableToolchainName>,
732+
) -> Result<Toolchain<'_>> {
733+
Ok(match name {
734+
Some(name) => {
735+
let desc = name.resolve(&self.get_default_host_triple()?)?;
736+
Toolchain::new(self, desc.into())?
737+
}
738+
None => self.find_or_install_active_toolchain().await?.0,
739+
})
740+
}
741+
729742
pub(crate) async fn local_toolchain(
730743
&self,
731744
name: Option<ResolvableLocalToolchainName>,
@@ -740,7 +753,7 @@ impl<'a> Cfg<'a> {
740753
})
741754
}
742755

743-
pub(crate) async fn find_or_install_active_toolchain(
756+
async fn find_or_install_active_toolchain(
744757
&'a self,
745758
) -> Result<(Toolchain<'a>, ActiveReason)> {
746759
self.maybe_find_or_install_active_toolchain(&self.current_dir)
@@ -749,7 +762,7 @@ impl<'a> Cfg<'a> {
749762
}
750763

751764
#[cfg_attr(feature = "otel", tracing::instrument(skip_all))]
752-
pub(crate) async fn maybe_find_or_install_active_toolchain(
765+
async fn maybe_find_or_install_active_toolchain(
753766
&'a self,
754767
path: &Path,
755768
) -> Result<Option<(Toolchain<'a>, ActiveReason)>> {

0 commit comments

Comments
 (0)