diff options
Diffstat (limited to 'crates/ra_proc_macro/src/lib.rs')
-rw-r--r-- | crates/ra_proc_macro/src/lib.rs | 17 |
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; | |||
9 | mod process; | 9 | mod process; |
10 | pub mod msg; | 10 | pub mod msg; |
11 | 11 | ||
12 | use process::{ProcMacroProcessSrv, ProcMacroProcessThread}; | ||
13 | use ra_tt::{SmolStr, Subtree}; | ||
14 | use std::{ | 12 | use 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 | ||
19 | use tt::{SmolStr, Subtree}; | ||
20 | |||
21 | use crate::process::{ProcMacroProcessSrv, ProcMacroProcessThread}; | ||
22 | |||
21 | pub use rpc::{ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask, ProcMacroKind}; | 23 | pub 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 | ||
39 | impl ra_tt::TokenExpander for ProcMacroProcessExpander { | 41 | impl 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(), |