Skip to content

Commit

Permalink
Auto merge of rust-lang#13289 - rust-lang:analysis-stats-proc-server,…
Browse files Browse the repository at this point in the history
… r=Veykril

Use the sysroot proc-macro server for analysis-stats

Should fix the metrics issues
  • Loading branch information
bors committed Sep 24, 2022
2 parents fa38c10 + 73f6af5 commit 73ab709
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions crates/rust-analyzer/src/cli/load_cargo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,26 @@ pub fn load_workspace(
};

let proc_macro_client = if load_config.with_proc_macro {
let path = AbsPathBuf::assert(std::env::current_exe()?);
Ok(ProcMacroServer::spawn(path, &["proc-macro"]).unwrap())
let mut path = AbsPathBuf::assert(std::env::current_exe()?);
let mut args = vec!["proc-macro"];

if let ProjectWorkspace::Cargo { sysroot, .. } | ProjectWorkspace::Json { sysroot, .. } =
&ws
{
if let Some(sysroot) = sysroot.as_ref() {
let standalone_server_name =
format!("rust-analyzer-proc-macro-srv{}", std::env::consts::EXE_SUFFIX);
let server_path = sysroot.root().join("libexec").join(&standalone_server_name);
if std::fs::metadata(&server_path).is_ok() {
path = server_path;
args = vec![];
}
}
}

ProcMacroServer::spawn(path.clone(), args.clone()).map_err(|e| e.to_string())
} else {
Err("proc macro server not started".to_owned())
Err("proc macro server disabled".to_owned())
};

let crate_graph = ws.to_crate_graph(
Expand Down

0 comments on commit 73ab709

Please sign in to comment.