aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_proc_macro/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_proc_macro/src/lib.rs')
-rw-r--r--crates/ra_proc_macro/src/lib.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/crates/ra_proc_macro/src/lib.rs b/crates/ra_proc_macro/src/lib.rs
index 004943b9e..15db57eb2 100644
--- a/crates/ra_proc_macro/src/lib.rs
+++ b/crates/ra_proc_macro/src/lib.rs
@@ -9,8 +9,6 @@ mod rpc;
9mod process; 9mod process;
10pub mod msg; 10pub mod msg;
11 11
12use process::{ProcMacroProcessSrv, ProcMacroProcessThread};
13use ra_tt::{SmolStr, Subtree};
14use std::{ 12use std::{
15 ffi::OsStr, 13 ffi::OsStr,
16 io, 14 io,
@@ -18,6 +16,10 @@ use std::{
18 sync::Arc, 16 sync::Arc,
19}; 17};
20 18
19use tt::{SmolStr, Subtree};
20
21use crate::process::{ProcMacroProcessSrv, ProcMacroProcessThread};
22
21pub use rpc::{ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask, ProcMacroKind}; 23pub use rpc::{ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask, ProcMacroKind};
22 24
23#[derive(Debug, Clone)] 25#[derive(Debug, Clone)]
@@ -36,12 +38,12 @@ impl PartialEq for ProcMacroProcessExpander {
36 } 38 }
37} 39}
38 40
39impl ra_tt::TokenExpander for ProcMacroProcessExpander { 41impl tt::TokenExpander for ProcMacroProcessExpander {
40 fn expand( 42 fn expand(
41 &self, 43 &self,
42 subtree: &Subtree, 44 subtree: &Subtree,
43 _attr: Option<&Subtree>, 45 _attr: Option<&Subtree>,
44 ) -> Result<Subtree, ra_tt::ExpansionError> { 46 ) -> Result<Subtree, tt::ExpansionError> {
45 self.process.custom_derive(&self.dylib_path, subtree, &self.name) 47 self.process.custom_derive(&self.dylib_path, subtree, &self.name)
46 } 48 }
47} 49}
@@ -72,10 +74,7 @@ impl ProcMacroClient {
72 ProcMacroClient { kind: ProcMacroClientKind::Dummy } 74 ProcMacroClient { kind: ProcMacroClientKind::Dummy }
73 } 75 }
74 76
75 pub fn by_dylib_path( 77 pub fn by_dylib_path(&self, dylib_path: &Path) -> Vec<(SmolStr, Arc<dyn tt::TokenExpander>)> {
76 &self,
77 dylib_path: &Path,
78 ) -> Vec<(SmolStr, Arc<dyn ra_tt::TokenExpander>)> {
79 match &self.kind { 78 match &self.kind {
80 ProcMacroClientKind::Dummy => vec![], 79 ProcMacroClientKind::Dummy => vec![],
81 ProcMacroClientKind::Process { process, .. } => { 80 ProcMacroClientKind::Process { process, .. } => {
@@ -94,7 +93,7 @@ impl ProcMacroClient {
94 match kind { 93 match kind {
95 ProcMacroKind::CustomDerive => { 94 ProcMacroKind::CustomDerive => {
96 let name = SmolStr::new(&name); 95 let name = SmolStr::new(&name);
97 let expander: Arc<dyn ra_tt::TokenExpander> = 96 let expander: Arc<dyn tt::TokenExpander> =
98 Arc::new(ProcMacroProcessExpander { 97 Arc::new(ProcMacroProcessExpander {
99 process: process.clone(), 98 process: process.clone(),
100 name: name.clone(), 99 name: name.clone(),