diff --git a/src/server/mod.rs b/src/server/mod.rs index 93cf12ebd98..e394da370cd 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -170,7 +170,7 @@ impl LsService { } } - fn dispatch_message(&mut self, msg: RawMessage) -> Result<(), jsonrpc::Error> { + fn dispatch_message(&mut self, msg: &RawMessage) -> Result<(), jsonrpc::Error> { macro_rules! match_action { ( $method: expr; @@ -334,12 +334,9 @@ impl LsService { } } - // Workaround https://github.com/rust-lang/rust/pull/55937 by moving - // raw_message instead of borrowing. - let id = raw_message.id.clone(); - if let Err(e) = self.dispatch_message(raw_message) { + if let Err(e) = self.dispatch_message(&raw_message) { error!("dispatch error: {:?}, message: `{}`", e, msg_string); - self.output.failure(id, e); + self.output.failure(raw_message.id, e); return ServerStateChange::Break { exit_code: 101 }; }