6722: Minor proc macro cleanups r=jonas-schievink a=jonas-schievink

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
This commit is contained in:
bors[bot] 2020-12-04 17:09:12 +00:00 committed by GitHub
commit 6943b53023
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,7 +19,7 @@ use crate::{
#[derive(Debug, Default)]
pub(crate) struct ProcMacroProcessSrv {
inner: Option<Weak<Sender<Task>>>,
inner: Weak<Sender<Task>>,
}
#[derive(Debug)]
@ -42,7 +42,7 @@ impl ProcMacroProcessSrv {
});
let task_tx = Arc::new(task_tx);
let srv = ProcMacroProcessSrv { inner: Some(Arc::downgrade(&task_tx)) };
let srv = ProcMacroProcessSrv { inner: Arc::downgrade(&task_tx) };
let thread = ProcMacroProcessThread { handle, sender: task_tx };
Ok((thread, srv))
@ -79,13 +79,8 @@ impl ProcMacroProcessSrv {
where
R: TryFrom<Response, Error = &'static str>,
{
let sender = match &self.inner {
None => return Err(tt::ExpansionError::Unknown("No sender is found.".to_string())),
Some(it) => it,
};
let (result_tx, result_rx) = bounded(0);
let sender = match sender.upgrade() {
let sender = match self.inner.upgrade() {
None => {
return Err(tt::ExpansionError::Unknown("Proc macro process is closed.".into()))
}
@ -109,14 +104,9 @@ impl ProcMacroProcessSrv {
}
fn client_loop(task_rx: Receiver<Task>, mut process: Process) {
let (mut stdin, mut stdout) = match process.stdio() {
None => return,
Some(it) => it,
};
for task in task_rx {
let Task { req, result_tx } = task;
let (mut stdin, mut stdout) = process.stdio().expect("couldn't access child stdio");
for Task { req, result_tx } in task_rx {
match send_request(&mut stdin, &mut stdout, req) {
Ok(res) => result_tx.send(res).unwrap(),
Err(_err) => {