&Option<T> -> Option<&T> (#11091)

* refactor `starting_request_args` to only `ref` non-`Copy`

* refactor `needs_recompile` to only `ref` non-`Copy`

* refactor `add_workspace_folder` to only `ref` `Some`

---------

Co-authored-by: Rudxain <rudxain@localhost.localdomain>
This commit is contained in:
Ricardo Fernández Serrata 2024-07-09 05:34:28 -04:00 committed by GitHub
parent 0c8d51ee36
commit 6997ee9151
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 8 deletions

View File

@ -157,8 +157,8 @@ async fn get_port() -> Option<u16> {
) )
} }
pub fn starting_request_args(&self) -> &Option<Value> { pub fn starting_request_args(&self) -> Option<&Value> {
&self.starting_request_args self.starting_request_args.as_ref()
} }
pub async fn tcp_process( pub async fn tcp_process(

View File

@ -422,7 +422,7 @@ fn build_tree_sitter_library(
} }
} }
let recompile = needs_recompile(&library_path, &parser_path, &scanner_path) let recompile = needs_recompile(&library_path, &parser_path, scanner_path.as_ref())
.context("Failed to compare source and binary timestamps")?; .context("Failed to compare source and binary timestamps")?;
if !recompile { if !recompile {
@ -568,7 +568,7 @@ fn build_tree_sitter_library(
fn needs_recompile( fn needs_recompile(
lib_path: &Path, lib_path: &Path,
parser_c_path: &Path, parser_c_path: &Path,
scanner_path: &Option<PathBuf>, scanner_path: Option<&PathBuf>,
) -> Result<bool> { ) -> Result<bool> {
if !lib_path.exists() { if !lib_path.exists() {
return Ok(true); return Ok(true);

View File

@ -123,7 +123,7 @@ pub fn try_add_doc(
{ {
client.add_workspace_folder( client.add_workspace_folder(
root_uri, root_uri,
&workspace_folders_caps.change_notifications, workspace_folders_caps.change_notifications.as_ref(),
); );
} }
}); });
@ -136,7 +136,10 @@ pub fn try_add_doc(
.and_then(|cap| cap.workspace_folders.as_ref()) .and_then(|cap| cap.workspace_folders.as_ref())
.filter(|cap| cap.supported.unwrap_or(false)) .filter(|cap| cap.supported.unwrap_or(false))
{ {
self.add_workspace_folder(root_uri, &workspace_folders_caps.change_notifications); self.add_workspace_folder(
root_uri,
workspace_folders_caps.change_notifications.as_ref(),
);
true true
} else { } else {
// the server doesn't support multi workspaces, we need a new client // the server doesn't support multi workspaces, we need a new client
@ -147,7 +150,7 @@ pub fn try_add_doc(
fn add_workspace_folder( fn add_workspace_folder(
&self, &self,
root_uri: Option<lsp::Url>, root_uri: Option<lsp::Url>,
change_notifications: &Option<OneOf<bool, String>>, change_notifications: Option<&OneOf<bool, String>>,
) { ) {
// root_uri is None just means that there isn't really any LSP workspace // root_uri is None just means that there isn't really any LSP workspace
// associated with this file. For servers that support multiple workspaces // associated with this file. For servers that support multiple workspaces
@ -162,7 +165,7 @@ fn add_workspace_folder(
self.workspace_folders self.workspace_folders
.lock() .lock()
.push(workspace_for_uri(root_uri.clone())); .push(workspace_for_uri(root_uri.clone()));
if &Some(OneOf::Left(false)) == change_notifications { if Some(&OneOf::Left(false)) == change_notifications {
// server specifically opted out of DidWorkspaceChange notifications // server specifically opted out of DidWorkspaceChange notifications
// let's assume the server will request the workspace folders itself // let's assume the server will request the workspace folders itself
// and that we can therefore reuse the client (but are done now) // and that we can therefore reuse the client (but are done now)