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.rs12
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())
}
}