diff --git a/starlark/src/values/layout/complex.rs b/starlark/src/values/layout/complex.rs index 252f8327..2432923d 100644 --- a/starlark/src/values/layout/complex.rs +++ b/starlark/src/values/layout/complex.rs @@ -70,15 +70,14 @@ where } /// Downcast. - pub fn new_err(value: Value<'v>) -> anyhow::Result { + pub fn new_err(value: Value<'v>) -> crate::Result { match Self::new(value) { Some(v) => Ok(v), None => Err(value_error!( "Expected value of type `{}`, got: `{}`", T::TYPE, value.to_string_for_type_error() - ) - .into_anyhow()), + )), } } diff --git a/starlark/src/values/layout/typed.rs b/starlark/src/values/layout/typed.rs index e8009e74..d04fbce7 100644 --- a/starlark/src/values/layout/typed.rs +++ b/starlark/src/values/layout/typed.rs @@ -184,7 +184,7 @@ impl<'v, T: StarlarkValue<'v>> ValueTyped<'v, T> { /// Downcast. #[inline] - pub fn new_err(value: Value<'v>) -> anyhow::Result> { + pub fn new_err(value: Value<'v>) -> crate::Result> { value.downcast_ref_err::()?; Ok(ValueTyped(value, marker::PhantomData)) } @@ -258,7 +258,7 @@ impl<'v, T: StarlarkValue<'v>> FrozenValueTyped<'v, T> { /// Downcast. #[inline] - pub fn new_err(value: FrozenValue) -> anyhow::Result> { + pub fn new_err(value: FrozenValue) -> crate::Result> { value.downcast_ref_err::()?; Ok(FrozenValueTyped(value, marker::PhantomData)) } diff --git a/starlark/src/values/layout/value.rs b/starlark/src/values/layout/value.rs index 6b21068a..48ae8061 100644 --- a/starlark/src/values/layout/value.rs +++ b/starlark/src/values/layout/value.rs @@ -1342,14 +1342,13 @@ pub trait ValueLike<'v>: /// Get a reference to underlying data or [`Err`] /// if contained object has different type than requested. - fn downcast_ref_err>(self) -> anyhow::Result<&'v T> { + fn downcast_ref_err>(self) -> crate::Result<&'v T> { match self.downcast_ref() { Some(v) => Ok(v), - None => Err(ValueValueError::WrongType( + None => Err(crate::Error::new_value(ValueValueError::WrongType( T::TYPE, self.to_value().to_string_for_type_error(), - ) - .into()), + ))), } } } diff --git a/starlark/src/values/types/any_complex.rs b/starlark/src/values/types/any_complex.rs index fb7d1916..1f4c7d4b 100644 --- a/starlark/src/values/types/any_complex.rs +++ b/starlark/src/values/types/any_complex.rs @@ -64,7 +64,7 @@ where } /// Obtain the value from a `Value`, if it is a `StarlarkAnyComplex`. - pub fn get_err(value: Value<'v>) -> anyhow::Result<&'v T> { + pub fn get_err(value: Value<'v>) -> crate::Result<&'v T> { value.downcast_ref_err::().map(|x| &x.value) } }