From 1ec6638c7f5d812085e9e5e5f5da6c06c0800cea Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 26 Oct 2023 10:16:21 +0200 Subject: [PATCH] vue: use anyhow::ensure instead of asserting on filesystem state (#3173) Release Notes: - Fixed a crash on failed assertion in Vue.js language support. --- crates/zed/src/languages/vue.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/zed/src/languages/vue.rs b/crates/zed/src/languages/vue.rs index f0374452df..16afd2e299 100644 --- a/crates/zed/src/languages/vue.rs +++ b/crates/zed/src/languages/vue.rs @@ -1,4 +1,4 @@ -use anyhow::{anyhow, Result}; +use anyhow::{anyhow, ensure, Result}; use async_trait::async_trait; use futures::StreamExt; pub use language::*; @@ -98,7 +98,10 @@ impl super::LspAdapter for VueLspAdapter { ) .await?; } - assert!(fs::metadata(&server_path).await.is_ok()); + ensure!( + fs::metadata(&server_path).await.is_ok(), + "@vue/language-server package installation failed" + ); if fs::metadata(&ts_path).await.is_err() { self.node .npm_install_packages( @@ -108,7 +111,10 @@ impl super::LspAdapter for VueLspAdapter { .await?; } - assert!(fs::metadata(&ts_path).await.is_ok()); + ensure!( + fs::metadata(&ts_path).await.is_ok(), + "typescript for Vue package installation failed" + ); *self.typescript_install_path.lock() = Some(ts_path); Ok(LanguageServerBinary { path: self.node.binary_path().await?,