From 60d046f567239b102d064ae7391bcf8aa78784d1 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 30 Jun 2023 08:38:44 +0200 Subject: [PATCH 1/2] Fix panic in `handle_code_action` --- crates/rust-analyzer/src/handlers/request.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/rust-analyzer/src/handlers/request.rs b/crates/rust-analyzer/src/handlers/request.rs index 569cd632c6..6f53d5f5fc 100644 --- a/crates/rust-analyzer/src/handlers/request.rs +++ b/crates/rust-analyzer/src/handlers/request.rs @@ -1156,7 +1156,7 @@ pub(crate) fn handle_code_action( let code_action = to_proto::code_action(&snap, assist, resolve_data)?; // Check if the client supports the necessary `ResourceOperation`s. - if let Some(changes) = &code_action.edit.as_ref().unwrap().document_changes { + if let Some(changes) = code_action.edit.as_ref().and_then(|it| &it.document_changes) { for change in changes { if let lsp_ext::SnippetDocumentChangeOperation::Op(res_op) = change { if let Err(err) = From 7e7f401a81f160c2bf79612af7a79e72a9fffbc7 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 30 Jun 2023 08:42:46 +0200 Subject: [PATCH 2/2] Fix panic in handle_code_action --- crates/rust-analyzer/src/handlers/request.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/rust-analyzer/src/handlers/request.rs b/crates/rust-analyzer/src/handlers/request.rs index 6f53d5f5fc..b103341f3c 100644 --- a/crates/rust-analyzer/src/handlers/request.rs +++ b/crates/rust-analyzer/src/handlers/request.rs @@ -1156,7 +1156,8 @@ pub(crate) fn handle_code_action( let code_action = to_proto::code_action(&snap, assist, resolve_data)?; // Check if the client supports the necessary `ResourceOperation`s. - if let Some(changes) = code_action.edit.as_ref().and_then(|it| &it.document_changes) { + let changes = code_action.edit.as_ref().and_then(|it| it.document_changes.as_ref()); + if let Some(changes) = changes { for change in changes { if let lsp_ext::SnippetDocumentChangeOperation::Op(res_op) = change { if let Err(err) =