diff --git a/crates/proc-macro-api/src/lib.rs b/crates/proc-macro-api/src/lib.rs index 4874e63244..ad462ff31a 100644 --- a/crates/proc-macro-api/src/lib.rs +++ b/crates/proc-macro-api/src/lib.rs @@ -254,7 +254,7 @@ impl ProcMacro { } } - self.pool.expand( + self.pool.pick_process()?.expand( self, subtree, attr, diff --git a/crates/proc-macro-api/src/pool.rs b/crates/proc-macro-api/src/pool.rs index fd8b726f82..13a4b5ee8f 100644 --- a/crates/proc-macro-api/src/pool.rs +++ b/crates/proc-macro-api/src/pool.rs @@ -1,8 +1,6 @@ //! A pool of proc-macro server processes use std::sync::Arc; -use tt::Span; - use crate::{ MacroDylib, ProcMacro, ServerError, bidirectional_protocol::SubCallback, process::ProcMacroServerProcess, @@ -29,7 +27,7 @@ impl ProcMacroServerPool { self.workers[0].exited() } - fn pick_process(&self) -> Result<&ProcMacroServerProcess, ServerError> { + pub(crate) fn pick_process(&self) -> Result<&ProcMacroServerProcess, ServerError> { self.workers .iter() .filter(|w| w.exited().is_none()) @@ -75,33 +73,6 @@ impl ProcMacroServerPool { .collect()) } - pub(crate) fn expand( - &self, - proc_macro: &ProcMacro, - subtree: tt::SubtreeView<'_>, - attr: Option>, - env: Vec<(String, String)>, - def_site: Span, - call_site: Span, - mixed_site: Span, - current_dir: String, - callback: Option>, - ) -> Result, ServerError> { - let process = self.pick_process()?; - - process.expand( - proc_macro, - subtree, - attr, - env, - def_site, - call_site, - mixed_site, - current_dir, - callback, - ) - } - pub(crate) fn version(&self) -> u32 { self.version }