@@ -30,7 +30,7 @@ use crate::{
3030pub mod msg;
3131
3232pub trait ClientCallbacks {
33- fn handle_sub_request ( & mut self , id : u64 , req : SubRequest ) -> Result < SubResponse , ServerError > ;
33+ fn handle_sub_request ( & mut self , req : SubRequest ) -> Result < SubResponse , ServerError > ;
3434}
3535
3636pub fn run_conversation < C : Codec > (
@@ -65,7 +65,7 @@ pub fn run_conversation<C: Codec>(
6565
6666 match ( msg. kind , msg. payload ) {
6767 ( Kind :: SubRequest , Payload :: SubRequest ( sr) ) => {
68- let resp = callbacks. handle_sub_request ( id , sr) ?;
68+ let resp = callbacks. handle_sub_request ( sr) ?;
6969 let reply =
7070 Envelope { id, kind : Kind :: SubResponse , payload : Payload :: SubResponse ( resp) } ;
7171 let encoded = C :: encode ( & reply) . map_err ( wrap_encode) ?;
@@ -104,19 +104,15 @@ pub(crate) fn version_check(srv: &ProcMacroServerProcess) -> Result<u32, ServerE
104104
105105 struct NoCallbacks ;
106106 impl ClientCallbacks for NoCallbacks {
107- fn handle_sub_request (
108- & mut self ,
109- _id : u64 ,
110- _req : SubRequest ,
111- ) -> Result < SubResponse , ServerError > {
107+ fn handle_sub_request ( & mut self , _req : SubRequest ) -> Result < SubResponse , ServerError > {
112108 Err ( ServerError { message : "sub-request not supported here" . into ( ) , io : None } )
113109 }
114110 }
115111
116112 let mut callbacks = NoCallbacks ;
117113
118114 let response_payload =
119- run_bidirectional ( srv, ( 0 , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
115+ run_bidirectional ( srv, ( srv . request_id ( ) , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
120116
121117 match response_payload {
122118 Payload :: Response ( Response :: ApiVersionCheck ( version) ) => Ok ( version) ,
@@ -135,19 +131,15 @@ pub(crate) fn enable_rust_analyzer_spans(
135131
136132 struct NoCallbacks ;
137133 impl ClientCallbacks for NoCallbacks {
138- fn handle_sub_request (
139- & mut self ,
140- _id : u64 ,
141- _req : SubRequest ,
142- ) -> Result < SubResponse , ServerError > {
134+ fn handle_sub_request ( & mut self , _req : SubRequest ) -> Result < SubResponse , ServerError > {
143135 Err ( ServerError { message : "sub-request not supported here" . into ( ) , io : None } )
144136 }
145137 }
146138
147139 let mut callbacks = NoCallbacks ;
148140
149141 let response_payload =
150- run_bidirectional ( srv, ( 0 , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
142+ run_bidirectional ( srv, ( srv . request_id ( ) , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
151143
152144 match response_payload {
153145 Payload :: Response ( Response :: SetConfig ( ServerConfig { span_mode } ) ) => Ok ( span_mode) ,
@@ -165,19 +157,15 @@ pub(crate) fn find_proc_macros(
165157
166158 struct NoCallbacks ;
167159 impl ClientCallbacks for NoCallbacks {
168- fn handle_sub_request (
169- & mut self ,
170- _id : u64 ,
171- _req : SubRequest ,
172- ) -> Result < SubResponse , ServerError > {
160+ fn handle_sub_request ( & mut self , _req : SubRequest ) -> Result < SubResponse , ServerError > {
173161 Err ( ServerError { message : "sub-request not supported here" . into ( ) , io : None } )
174162 }
175163 }
176164
177165 let mut callbacks = NoCallbacks ;
178166
179167 let response_payload =
180- run_bidirectional ( srv, ( 0 , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
168+ run_bidirectional ( srv, ( srv . request_id ( ) , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
181169
182170 match response_payload {
183171 Payload :: Response ( Response :: ListMacros ( it) ) => Ok ( it) ,
@@ -225,15 +213,13 @@ pub(crate) fn expand(
225213 current_dir : Some ( current_dir) ,
226214 } ) ) ) ;
227215
216+ let request_id = proc_macro. process . request_id ( ) ;
217+
228218 struct Callbacks < ' de > {
229219 db : & ' de dyn SourceDatabase ,
230220 }
231221 impl < ' db > ClientCallbacks for Callbacks < ' db > {
232- fn handle_sub_request (
233- & mut self ,
234- _id : u64 ,
235- req : SubRequest ,
236- ) -> Result < SubResponse , ServerError > {
222+ fn handle_sub_request ( & mut self , req : SubRequest ) -> Result < SubResponse , ServerError > {
237223 match req {
238224 SubRequest :: SourceText { file_id, start, end } => {
239225 let file = FileId :: from_raw ( file_id) ;
@@ -249,8 +235,11 @@ pub(crate) fn expand(
249235
250236 let mut callbacks = Callbacks { db } ;
251237
252- let response_payload =
253- run_bidirectional ( & proc_macro. process , ( 0 , Kind :: Request , task) . into ( ) , & mut callbacks) ?;
238+ let response_payload = run_bidirectional (
239+ & proc_macro. process ,
240+ ( request_id, Kind :: Request , task) . into ( ) ,
241+ & mut callbacks,
242+ ) ?;
254243
255244 match response_payload {
256245 Payload :: Response ( Response :: ExpandMacro ( it) ) => Ok ( it
0 commit comments