Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/proc-macro-api/src/lib.rs')
-rw-r--r--crates/proc-macro-api/src/lib.rs17
1 files changed, 10 insertions, 7 deletions
diff --git a/crates/proc-macro-api/src/lib.rs b/crates/proc-macro-api/src/lib.rs
index 01195c10fe..dd0c89103a 100644
--- a/crates/proc-macro-api/src/lib.rs
+++ b/crates/proc-macro-api/src/lib.rs
@@ -27,7 +27,10 @@ use span::{ErasedFileAstId, FIXUP_ERASED_FILE_AST_ID_MARKER, Span};
use std::{fmt, io, sync::Arc, time::SystemTime};
pub use crate::transport::codec::Codec;
-use crate::{bidirectional_protocol::SubCallback, process::ProcMacroServerProcess};
+use crate::{
+ bidirectional_protocol::SubCallback,
+ process::{ProcMacroServerProcess, ProcMacroWorker},
+};
/// The versions of the server protocol
pub mod version {
@@ -85,7 +88,7 @@ pub struct ProcMacroClient {
///
/// That means that concurrent salsa requests may block each other when expanding proc macros,
/// which is unfortunate, but simple and good enough for the time being.
- process: Arc<ProcMacroServerProcess>,
+ worker: Arc<dyn ProcMacroWorker>,
path: AbsPathBuf,
}
@@ -107,7 +110,7 @@ impl MacroDylib {
/// we share a single expander process for all macros within a workspace.
#[derive(Debug, Clone)]
pub struct ProcMacro {
- process: Arc<ProcMacroServerProcess>,
+ process: Arc<dyn ProcMacroWorker>,
dylib_path: Arc<AbsPathBuf>,
name: Box<str>,
kind: ProcMacroKind,
@@ -171,7 +174,7 @@ impl ProcMacroClient {
version: Option<&Version>,
) -> io::Result<ProcMacroClient> {
let process = ProcMacroServerProcess::run(spawn, version, || "<unknown>".to_owned())?;
- Ok(ProcMacroClient { process: Arc::new(process), path: process_path.to_owned() })
+ Ok(ProcMacroClient { worker: Arc::new(process), path: process_path.to_owned() })
}
/// Returns the absolute path to the proc-macro server.
@@ -186,7 +189,7 @@ impl ProcMacroClient {
callback: Option<SubCallback<'_>>,
) -> Result<Vec<ProcMacro>, ServerError> {
let _p = tracing::info_span!("ProcMacroServer::load_dylib").entered();
- let macros = self.process.find_proc_macros(&dylib.path, callback)?;
+ let macros = self.worker.find_proc_macros(&dylib.path, callback)?;
let dylib_path = Arc::new(dylib.path);
let dylib_last_modified = std::fs::metadata(dylib_path.as_path())
@@ -196,7 +199,7 @@ impl ProcMacroClient {
Ok(macros) => Ok(macros
.into_iter()
.map(|(name, kind)| ProcMacro {
- process: self.process.clone(),
+ process: self.worker.clone(),
name: name.into(),
kind,
dylib_path: dylib_path.clone(),
@@ -209,7 +212,7 @@ impl ProcMacroClient {
/// Checks if the proc-macro server has exited.
pub fn exited(&self) -> Option<&ServerError> {
- self.process.exited()
+ self.worker.exited()
}
}