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.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crates/proc_macro_api/src/lib.rs b/crates/proc_macro_api/src/lib.rs index bbd26caf76..04a4d7ca58 100644 --- a/crates/proc_macro_api/src/lib.rs +++ b/crates/proc_macro_api/src/lib.rs @@ -21,7 +21,9 @@ use tt::{SmolStr, Subtree}; use crate::process::ProcMacroProcessSrv; -pub use rpc::{ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask, ProcMacroKind}; +pub use rpc::{ + flat::FlatTree, ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask, ProcMacroKind, +}; pub use version::{read_dylib_info, RustCInfo}; #[derive(Debug, Clone)] @@ -58,10 +60,10 @@ impl ProcMacroProcessExpander { env: Vec<(String, String)>, ) -> Result<Subtree, tt::ExpansionError> { let task = ExpansionTask { - macro_body: subtree.clone(), + macro_body: FlatTree::new(subtree), macro_name: self.name.to_string(), - attributes: attr.cloned(), - lib: self.dylib_path.to_path_buf(), + attributes: attr.map(FlatTree::new), + lib: self.dylib_path.to_path_buf().into(), env, }; @@ -70,7 +72,7 @@ impl ProcMacroProcessExpander { .lock() .unwrap_or_else(|e| e.into_inner()) .send_task(msg::Request::ExpansionMacro(task))?; - Ok(result.expansion) + Ok(result.expansion.to_subtree()) } } |