Enable clippy::manual_flatten (#8739)

This PR enables the
[`clippy::manual_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#/manual_flatten)
rule and fixes the outstanding violations.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2024-03-02 20:28:26 -05:00 committed by GitHub
parent f79f56f8b4
commit 503bebaacc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 20 additions and 33 deletions

View File

@ -3918,16 +3918,14 @@ impl BackgroundScanner {
let repository = let repository =
dotgit_path.and_then(|path| state.build_git_repository(path, self.fs.as_ref())); dotgit_path.and_then(|path| state.build_git_repository(path, self.fs.as_ref()));
for new_job in new_jobs { for mut new_job in new_jobs.into_iter().flatten() {
if let Some(mut new_job) = new_job { if let Some(containing_repository) = &repository {
if let Some(containing_repository) = &repository { new_job.containing_repository = Some(containing_repository.clone());
new_job.containing_repository = Some(containing_repository.clone());
}
job.scan_queue
.try_send(new_job)
.expect("channel is unbounded");
} }
job.scan_queue
.try_send(new_job)
.expect("channel is unbounded");
} }
Ok(()) Ok(())

View File

@ -278,11 +278,7 @@ impl VectorDatabase {
let worktree_id = worktree_query let worktree_id = worktree_query
.query_row(params![worktree_root_path], |row| Ok(row.get::<_, i64>(0)?)); .query_row(params![worktree_root_path], |row| Ok(row.get::<_, i64>(0)?));
if worktree_id.is_ok() { Ok(worktree_id.is_ok())
return Ok(true);
} else {
return Ok(false);
}
}) })
} }
@ -302,17 +298,15 @@ impl VectorDatabase {
let digests = Rc::new( let digests = Rc::new(
digests digests
.into_iter() .into_iter()
.map(|p| Value::Blob(p.0.to_vec())) .map(|digest| Value::Blob(digest.0.to_vec()))
.collect::<Vec<_>>(), .collect::<Vec<_>>(),
); );
let rows = query.query_map(params![digests], |row| { let rows = query.query_map(params![digests], |row| {
Ok((row.get::<_, SpanDigest>(0)?, row.get::<_, Embedding>(1)?)) Ok((row.get::<_, SpanDigest>(0)?, row.get::<_, Embedding>(1)?))
})?; })?;
for row in rows { for (digest, embedding) in rows.flatten() {
if let Ok(row) = row { embeddings_by_digest.insert(digest, embedding);
embeddings_by_digest.insert(row.0, row.1);
}
} }
Ok(embeddings_by_digest) Ok(embeddings_by_digest)
@ -344,10 +338,8 @@ impl VectorDatabase {
Ok((row.get::<_, SpanDigest>(0)?, row.get::<_, Embedding>(1)?)) Ok((row.get::<_, SpanDigest>(0)?, row.get::<_, Embedding>(1)?))
})?; })?;
for row in rows { for (digest, embedding) in rows.flatten() {
if let Ok(row) = row { embeddings_by_digest.insert(digest, embedding);
embeddings_by_digest.insert(row.0, row.1);
}
} }
} }

View File

@ -3713,7 +3713,7 @@ fn open_items(
project_paths_to_open project_paths_to_open
.into_iter() .into_iter()
.enumerate() .enumerate()
.map(|(i, (abs_path, project_path))| { .map(|(ix, (abs_path, project_path))| {
let workspace = workspace.clone(); let workspace = workspace.clone();
cx.spawn(|mut cx| { cx.spawn(|mut cx| {
let fs = app_state.fs.clone(); let fs = app_state.fs.clone();
@ -3721,7 +3721,7 @@ fn open_items(
let file_project_path = project_path?; let file_project_path = project_path?;
if fs.is_file(&abs_path).await { if fs.is_file(&abs_path).await {
Some(( Some((
i, ix,
workspace workspace
.update(&mut cx, |workspace, cx| { .update(&mut cx, |workspace, cx| {
workspace.open_path(file_project_path, None, true, cx) workspace.open_path(file_project_path, None, true, cx)
@ -3739,10 +3739,8 @@ fn open_items(
let tasks = tasks.collect::<Vec<_>>(); let tasks = tasks.collect::<Vec<_>>();
let tasks = futures::future::join_all(tasks.into_iter()); let tasks = futures::future::join_all(tasks.into_iter());
for maybe_opened_path in tasks.await.into_iter() { for (ix, path_open_result) in tasks.await.into_iter().flatten() {
if let Some((i, path_open_result)) = maybe_opened_path { opened_items[ix] = Some(path_open_result);
opened_items[i] = Some(path_open_result);
}
} }
Ok(opened_items) Ok(opened_items)

View File

@ -296,9 +296,9 @@ fn main() {
let task = workspace::open_paths(&paths, &app_state, None, cx); let task = workspace::open_paths(&paths, &app_state, None, cx);
cx.spawn(|_| async move { cx.spawn(|_| async move {
if let Some((_window, results)) = task.await.log_err() { if let Some((_window, results)) = task.await.log_err() {
for result in results { for result in results.into_iter().flatten() {
if let Some(Err(e)) = result { if let Err(err) = result {
log::error!("Error opening path: {}", e); log::error!("Error opening path: {err}",);
} }
} }
} }

View File

@ -101,7 +101,6 @@ fn run_clippy(args: ClippyArgs) -> Result<()> {
"clippy::iter_kv_map", "clippy::iter_kv_map",
"clippy::iter_overeager_cloned", "clippy::iter_overeager_cloned",
"clippy::let_underscore_future", "clippy::let_underscore_future",
"clippy::manual_flatten",
"clippy::map_entry", "clippy::map_entry",
"clippy::needless_arbitrary_self_type", "clippy::needless_arbitrary_self_type",
"clippy::needless_borrowed_reference", "clippy::needless_borrowed_reference",