From 85d77a3eeca3d8897200c6adc4bc01e52ed0182d Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 12 Jul 2024 16:09:16 -0400 Subject: [PATCH] Clarify `/docs` error message when `target/doc` does not exist (#14364) This PR improves the error message shown by the `/docs` slash command when indexing fails due to the absence of `target/doc`. We now distinguish between the overall `target/doc` directory missing and an individual crate directory missing beneath it. Release Notes: - N/A --- crates/indexed_docs/src/providers/rustdoc.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/indexed_docs/src/providers/rustdoc.rs b/crates/indexed_docs/src/providers/rustdoc.rs index 749af38af6..9509725a1a 100644 --- a/crates/indexed_docs/src/providers/rustdoc.rs +++ b/crates/indexed_docs/src/providers/rustdoc.rs @@ -60,11 +60,18 @@ impl IndexedDocsProvider for LocalRustdocProvider { let crate_name = crate_name.clone(); let item = item.cloned(); async move { - let mut local_cargo_doc_path = cargo_workspace_root.join("target/doc"); - local_cargo_doc_path.push(crate_name.as_ref()); + let target_doc_path = cargo_workspace_root.join("target/doc"); + let mut local_cargo_doc_path = target_doc_path.join(crate_name.as_ref()); if !fs.is_dir(&local_cargo_doc_path).await { - bail!("docs directory for '{crate_name}' does not exist. run `cargo doc`"); + let cargo_doc_exists_at_all = fs.is_dir(&target_doc_path).await; + if cargo_doc_exists_at_all { + bail!( + "no docs directory for '{crate_name}'. if this is a valid crate name, try running `cargo doc`" + ); + } else { + bail!("no cargo doc directory. run `cargo doc`"); + } } if let Some(item) = item {