From dc08bde7a83d882539a08cffa844854d564204b8 Mon Sep 17 00:00:00 2001 From: David Zbarsky Date: Thu, 30 May 2024 20:23:58 -0400 Subject: [PATCH] Use repo-mapping-aware runfiles API in rust-analyzer (#2666) Fixes https://github.com/bazelbuild/rules_rust/issues/2615 and https://github.com/bazelbuild/rules_rust/issues/2438 --- tools/rust_analyzer/lib.rs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/tools/rust_analyzer/lib.rs b/tools/rust_analyzer/lib.rs index 6bca60b68f..874f85566d 100644 --- a/tools/rust_analyzer/lib.rs +++ b/tools/rust_analyzer/lib.rs @@ -8,8 +8,6 @@ use runfiles::Runfiles; mod aquery; mod rust_project; -const SYSROOT_SRC_FILE_RUNFILES_PREFIX: &str = "rules_rust"; - pub fn generate_crate_info( bazel: impl AsRef, workspace: impl AsRef, @@ -61,15 +59,10 @@ pub fn write_rust_project( rules_rust_name.as_ref(), )?; - let workspace_name = match rules_rust_name.as_ref().trim_start_matches('@') { - "" => SYSROOT_SRC_FILE_RUNFILES_PREFIX, - s => s, - }; - let toolchain_info_path = format!( - "{workspace_name}/rust/private/rust_analyzer_detect_sysroot.rust_analyzer_toolchain.json" + let path = runfiles::rlocation!( + Runfiles::create()?, + "rules_rust/rust/private/rust_analyzer_detect_sysroot.rust_analyzer_toolchain.json" ); - let r = Runfiles::create()?; - let path = r.rlocation(toolchain_info_path); let toolchain_info: HashMap = serde_json::from_str(&std::fs::read_to_string(path)?)?;