about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAli Bektas <bektasali@protonmail.com>2023-06-30 15:46:39 +0200
committerAli Bektas <bektasali@protonmail.com>2023-06-30 15:47:17 +0200
commit72aeaef5f33dd409d7326b710d7c6dafa3f05e00 (patch)
treeecfa4bad72871729bfe961aabdf6959c845a1eff
parentf96442aa905e3b698fba52fdb109b1baed45f5cf (diff)
downloadrust-72aeaef5f33dd409d7326b710d7c6dafa3f05e00.tar.gz
rust-72aeaef5f33dd409d7326b710d7c6dafa3f05e00.zip
Purge of unwraps
-rw-r--r--crates/rust-analyzer/src/handlers/request.rs27
1 files changed, 13 insertions, 14 deletions
diff --git a/crates/rust-analyzer/src/handlers/request.rs b/crates/rust-analyzer/src/handlers/request.rs
index b103341f3ca..c34adac5405 100644
--- a/crates/rust-analyzer/src/handlers/request.rs
+++ b/crates/rust-analyzer/src/handlers/request.rs
@@ -2039,20 +2039,19 @@ fn to_url(path: VfsPath) -> Option<Url> {
 }
 
 fn resource_ops_supported(config: &Config, kind: ResourceOperationKind) -> anyhow::Result<()> {
-    let ctn = config
-        .caps()
-        .workspace
-        .as_ref()
-        .unwrap()
-        .workspace_edit
-        .as_ref()
-        .unwrap()
-        .resource_operations
-        .as_ref()
-        .unwrap()
-        .contains(&kind);
-
-    if !ctn {
+    #[rustfmt::skip]
+    let resops = (|| {
+        config
+            .caps()
+            .workspace
+            .as_ref()?
+            .workspace_edit
+            .as_ref()?
+            .resource_operations
+            .as_ref()
+    })();
+
+    if resops.is_none() || !resops.unwrap().contains(&kind) {
         return Err(LspError::new(
             ErrorCode::RequestFailed as i32,
             format!(