From fb021d7ceff3f8b1d7cdb0c2bdd75ea07c0428d2 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 15 Mar 2023 17:46:36 -0400 Subject: refactor: remove usages of `map_or` / `map_or_else` (#18212) These methods are confusing because the arguments are backwards. I feel like they should have never been added to `Option` and that clippy should suggest rewriting to `map(...).unwrap_or(...)`/`map(...).unwrap_or_else(|| ...)` https://github.com/rust-lang/rfcs/issues/1025 --- cli/lsp/language_server.rs | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'cli/lsp/language_server.rs') diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index fc87001af..8a779d283 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -509,14 +509,14 @@ impl Inner { &self, specifier: &ModuleSpecifier, ) -> LspResult { - self.get_maybe_asset_or_document(specifier).map_or_else( - || { + self + .get_maybe_asset_or_document(specifier) + .map(Ok) + .unwrap_or_else(|| { Err(LspError::invalid_params(format!( "Unable to find asset or document for: {specifier}" ))) - }, - Ok, - ) + }) } /// Searches assets and documents for the provided specifier. @@ -1677,16 +1677,12 @@ impl Inner { // Refactor let start = line_index.offset_tsc(params.range.start)?; let length = line_index.offset_tsc(params.range.end)? - start; - let only = - params - .context - .only - .as_ref() - .map_or(String::default(), |values| { - values - .first() - .map_or(String::default(), |v| v.as_str().to_owned()) - }); + let only = params + .context + .only + .as_ref() + .and_then(|values| values.first().map(|v| v.as_str().to_owned())) + .unwrap_or_default(); let req = tsc::RequestMethod::GetApplicableRefactors(( specifier.clone(), tsc::TextSpan { start, length }, -- cgit v1.2.3