about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2023-06-30 08:42:46 +0200
committerGitHub <noreply@github.com>2023-06-30 08:42:46 +0200
commit7e7f401a81f160c2bf79612af7a79e72a9fffbc7 (patch)
tree7799a68b9b33faa0abd8f2690af0b6e49cf74334
parent60d046f567239b102d064ae7391bcf8aa78784d1 (diff)
downloadrust-7e7f401a81f160c2bf79612af7a79e72a9fffbc7.tar.gz
rust-7e7f401a81f160c2bf79612af7a79e72a9fffbc7.zip
Fix panic in handle_code_action
-rw-r--r--crates/rust-analyzer/src/handlers/request.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/handlers/request.rs b/crates/rust-analyzer/src/handlers/request.rs
index 6f53d5f5fc2..b103341f3ca 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) =