From 3e3e70d529d8c7d7c4d7bc4fefc9f109393b9245 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:43 +0200 Subject: Merging upstream version 1.69.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/anyhow/src/context.rs | 19 +++++++++++++------ vendor/anyhow/src/lib.rs | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) (limited to 'vendor/anyhow/src') diff --git a/vendor/anyhow/src/context.rs b/vendor/anyhow/src/context.rs index 238473e5c..9df86937b 100644 --- a/vendor/anyhow/src/context.rs +++ b/vendor/anyhow/src/context.rs @@ -4,7 +4,7 @@ use core::convert::Infallible; use core::fmt::{self, Debug, Display, Write}; #[cfg(backtrace)] -use std::any::Demand; +use std::any::{Demand, Provider}; mod ext { use super::*; @@ -92,7 +92,12 @@ impl Context for Option { where C: Display + Send + Sync + 'static, { - self.ok_or_else(|| Error::from_display(context, backtrace!())) + // Not using ok_or_else to save 2 useless frames off the captured + // backtrace. + match self { + Some(ok) => Ok(ok), + None => Err(Error::from_display(context, backtrace!())), + } } fn with_context(self, context: F) -> Result @@ -100,7 +105,10 @@ impl Context for Option { C: Display + Send + Sync + 'static, F: FnOnce() -> C, { - self.ok_or_else(|| Error::from_display(context(), backtrace!())) + match self { + Some(ok) => Ok(ok), + None => Err(Error::from_display(context(), backtrace!())), + } } } @@ -137,7 +145,7 @@ where #[cfg(backtrace)] fn provide<'a>(&'a self, demand: &mut Demand<'a>) { - self.error.provide(demand); + StdError::provide(&self.error, demand); } } @@ -151,8 +159,7 @@ where #[cfg(backtrace)] fn provide<'a>(&'a self, demand: &mut Demand<'a>) { - demand.provide_ref(self.error.backtrace()); - self.error.provide(demand); + Provider::provide(&self.error, demand); } } diff --git a/vendor/anyhow/src/lib.rs b/vendor/anyhow/src/lib.rs index 583ab424e..3510d195e 100644 --- a/vendor/anyhow/src/lib.rs +++ b/vendor/anyhow/src/lib.rs @@ -210,7 +210,7 @@ //! will require an explicit `.map_err(Error::msg)` when working with a //! non-Anyhow error type inside a function that returns Anyhow's error type. -#![doc(html_root_url = "https://docs.rs/anyhow/1.0.66")] +#![doc(html_root_url = "https://docs.rs/anyhow/1.0.68")] #![cfg_attr(backtrace, feature(error_generic_member_access, provide_any))] #![cfg_attr(doc_cfg, feature(doc_cfg))] #![cfg_attr(not(feature = "std"), no_std)] -- cgit v1.2.3