diff --git a/src/dist/manifestation.rs b/src/dist/manifestation.rs index c47de9366b..3ba8065a78 100644 --- a/src/dist/manifestation.rs +++ b/src/dist/manifestation.rs @@ -187,6 +187,12 @@ impl Manifestation { // Uninstall components for component in update.components_to_uninstall { + // If there are no components installed, we don't need to keep + // checking, we can simply exit the loop earlier. + if self.installation.list()?.is_empty() { + info!("recovering from a partially installed toolchain"); + break; + } match (implicit_modify, &component.target) { (true, Some(t)) if t != &self.target_triple => { info!(