aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/proc_macro_api/src/process.rs11
1 files changed, 3 insertions, 8 deletions
diff --git a/crates/proc_macro_api/src/process.rs b/crates/proc_macro_api/src/process.rs
index 907cb3db7..fca506905 100644
--- a/crates/proc_macro_api/src/process.rs
+++ b/crates/proc_macro_api/src/process.rs
@@ -19,7 +19,7 @@ use crate::{
19 19
20#[derive(Debug, Default)] 20#[derive(Debug, Default)]
21pub(crate) struct ProcMacroProcessSrv { 21pub(crate) struct ProcMacroProcessSrv {
22 inner: Option<Weak<Sender<Task>>>, 22 inner: Weak<Sender<Task>>,
23} 23}
24 24
25#[derive(Debug)] 25#[derive(Debug)]
@@ -42,7 +42,7 @@ impl ProcMacroProcessSrv {
42 }); 42 });
43 43
44 let task_tx = Arc::new(task_tx); 44 let task_tx = Arc::new(task_tx);
45 let srv = ProcMacroProcessSrv { inner: Some(Arc::downgrade(&task_tx)) }; 45 let srv = ProcMacroProcessSrv { inner: Arc::downgrade(&task_tx) };
46 let thread = ProcMacroProcessThread { handle, sender: task_tx }; 46 let thread = ProcMacroProcessThread { handle, sender: task_tx };
47 47
48 Ok((thread, srv)) 48 Ok((thread, srv))
@@ -79,13 +79,8 @@ impl ProcMacroProcessSrv {
79 where 79 where
80 R: TryFrom<Response, Error = &'static str>, 80 R: TryFrom<Response, Error = &'static str>,
81 { 81 {
82 let sender = match &self.inner {
83 None => return Err(tt::ExpansionError::Unknown("No sender is found.".to_string())),
84 Some(it) => it,
85 };
86
87 let (result_tx, result_rx) = bounded(0); 82 let (result_tx, result_rx) = bounded(0);
88 let sender = match sender.upgrade() { 83 let sender = match self.inner.upgrade() {
89 None => { 84 None => {
90 return Err(tt::ExpansionError::Unknown("Proc macro process is closed.".into())) 85 return Err(tt::ExpansionError::Unknown("Proc macro process is closed.".into()))
91 } 86 }