Skip to content

Commit 604b1c8

Browse files
committed
Auto merge of rust-lang#12508 - Veykril:req-retry, r=Veykril
fix: Don't respond to cancelled requests when retrying them Fixes rust-lang/rust-analyzer#12482
2 parents ccab003 + ad109f7 commit 604b1c8

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

crates/rust-analyzer/src/main_loop.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ impl GlobalState {
197197
let was_quiescent = self.is_quiescent();
198198
match event {
199199
Event::Lsp(msg) => match msg {
200-
lsp_server::Message::Request(req) => self.on_request(loop_start, req),
200+
lsp_server::Message::Request(req) => self.on_new_request(loop_start, req),
201201
lsp_server::Message::Notification(not) => {
202202
self.on_notification(not)?;
203203
}
@@ -209,7 +209,7 @@ impl GlobalState {
209209
loop {
210210
match task {
211211
Task::Response(response) => self.respond(response),
212-
Task::Retry(req) => self.on_request(loop_start, req),
212+
Task::Retry(req) => self.on_request(req),
213213
Task::Diagnostics(diagnostics_per_file) => {
214214
for (file_id, diagnostics) in diagnostics_per_file {
215215
self.diagnostics.set_native_diagnostics(file_id, diagnostics)
@@ -555,9 +555,12 @@ impl GlobalState {
555555
Ok(())
556556
}
557557

558-
fn on_request(&mut self, request_received: Instant, req: Request) {
558+
fn on_new_request(&mut self, request_received: Instant, req: Request) {
559559
self.register_request(&req, request_received);
560+
self.on_request(req);
561+
}
560562

563+
fn on_request(&mut self, req: Request) {
561564
if self.shutdown_requested {
562565
self.respond(lsp_server::Response::new_err(
563566
req.id,

0 commit comments

Comments
 (0)