about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/rust-analyzer/src/handlers.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index 1cf4139d2bb..7bfbc61037b 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -1336,12 +1336,12 @@ pub(crate) fn handle_open_cargo_toml(
 ) -> Result<Option<lsp_types::GotoDefinitionResponse>> {
     let _p = profile::span("handle_open_cargo_toml");
     let file_id = from_proto::file_id(&snap, &params.text_document.uri)?;
-    let maybe_cargo_spec = CargoTargetSpec::for_file(&snap, file_id)?;
-    if maybe_cargo_spec.is_none() {
-        return Ok(None);
-    }
 
-    let cargo_spec = maybe_cargo_spec.unwrap();
+    let cargo_spec = match CargoTargetSpec::for_file(&snap, file_id)? {
+        Some(it) => it,
+        None => return Ok(None),
+    };
+
     let cargo_toml_path = cargo_spec.workspace_root.join("Cargo.toml");
     if !cargo_toml_path.exists() {
         return Ok(None);