@@ -19,7 +19,7 @@ use crate::{
1919
2020#[ derive( Debug , Default ) ]
2121pub ( crate ) struct ProcMacroProcessSrv {
22- inner : Option < Weak < Sender < Task > > > ,
22+ inner : Weak < Sender < Task > > ,
2323}
2424
2525#[ derive( Debug ) ]
@@ -42,7 +42,7 @@ impl ProcMacroProcessSrv {
4242 } ) ;
4343
4444 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) } ;
4646 let thread = ProcMacroProcessThread { handle, sender : task_tx } ;
4747
4848 Ok ( ( thread, srv) )
@@ -79,13 +79,8 @@ impl ProcMacroProcessSrv {
7979 where
8080 R : TryFrom < Response , Error = & ' static str > ,
8181 {
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-
8782 let ( result_tx, result_rx) = bounded ( 0 ) ;
88- let sender = match sender . upgrade ( ) {
83+ let sender = match self . inner . upgrade ( ) {
8984 None => {
9085 return Err ( tt:: ExpansionError :: Unknown ( "Proc macro process is closed." . into ( ) ) )
9186 }
@@ -109,14 +104,9 @@ impl ProcMacroProcessSrv {
109104}
110105
111106fn client_loop ( task_rx : Receiver < Task > , mut process : Process ) {
112- let ( mut stdin, mut stdout) = match process. stdio ( ) {
113- None => return ,
114- Some ( it) => it,
115- } ;
116-
117- for task in task_rx {
118- let Task { req, result_tx } = task;
107+ let ( mut stdin, mut stdout) = process. stdio ( ) . expect ( "couldn't access child stdio" ) ;
119108
109+ for Task { req, result_tx } in task_rx {
120110 match send_request ( & mut stdin, & mut stdout, req) {
121111 Ok ( res) => result_tx. send ( res) . unwrap ( ) ,
122112 Err ( _err) => {
0 commit comments