Use anyhow
more idiomatically (#31052)
https://github.com/zed-industries/zed/issues/30972 brought up another case where our context is not enough to track the actual source of the issue: we get a general top-level error without inner error. The reason for this was `.ok_or_else(|| anyhow!("failed to read HEAD SHA"))?; ` on the top level. The PR finally reworks the way we use anyhow to reduce such issues (or at least make it simpler to bubble them up later in a fix). On top of that, uses a few more anyhow methods for better readability. * `.ok_or_else(|| anyhow!("..."))`, `map_err` and other similar error conversion/option reporting cases are replaced with `context` and `with_context` calls * in addition to that, various `anyhow!("failed to do ...")` are stripped with `.context("Doing ...")` messages instead to remove the parasitic `failed to` text * `anyhow::ensure!` is used instead of `if ... { return Err(...); }` calls * `anyhow::bail!` is used instead of `return Err(anyhow!(...));` Release Notes: - N/A
This commit is contained in:
parent
1e51a7ac44
commit
16366cf9f2
294 changed files with 2037 additions and 2610 deletions
|
@ -2,7 +2,7 @@ use crate::{
|
|||
Project, ProjectEntryId, ProjectItem, ProjectPath,
|
||||
worktree_store::{WorktreeStore, WorktreeStoreEvent},
|
||||
};
|
||||
use anyhow::{Context as _, Result, anyhow};
|
||||
use anyhow::{Context as _, Result};
|
||||
use collections::{HashMap, HashSet, hash_map};
|
||||
use futures::{StreamExt, channel::oneshot};
|
||||
use gpui::{
|
||||
|
@ -128,7 +128,7 @@ impl ImageItem {
|
|||
let file_metadata = fs
|
||||
.metadata(image_path.as_path())
|
||||
.await?
|
||||
.ok_or_else(|| anyhow!("failed to load image metadata"))?;
|
||||
.context("failed to load image metadata")?;
|
||||
|
||||
Ok(ImageMetadata {
|
||||
width,
|
||||
|
@ -223,7 +223,7 @@ impl ProjectItem for ImageItem {
|
|||
project: &Entity<Project>,
|
||||
path: &ProjectPath,
|
||||
cx: &mut App,
|
||||
) -> Option<Task<gpui::Result<Entity<Self>>>> {
|
||||
) -> Option<Task<anyhow::Result<Entity<Self>>>> {
|
||||
if is_image_file(&project, &path, cx) {
|
||||
Some(cx.spawn({
|
||||
let path = path.clone();
|
||||
|
@ -702,7 +702,7 @@ fn create_gpui_image(content: Vec<u8>) -> anyhow::Result<Arc<gpui::Image>> {
|
|||
image::ImageFormat::Gif => gpui::ImageFormat::Gif,
|
||||
image::ImageFormat::Bmp => gpui::ImageFormat::Bmp,
|
||||
image::ImageFormat::Tiff => gpui::ImageFormat::Tiff,
|
||||
_ => Err(anyhow::anyhow!("Image format not supported"))?,
|
||||
format => anyhow::bail!("Image format {format:?} not supported"),
|
||||
},
|
||||
content,
|
||||
)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue