From a9f1134556c0776875f1ebea3a678e3bc217c954 Mon Sep 17 00:00:00 2001 From: timofey Date: Tue, 1 Aug 2023 21:00:00 +0000 Subject: [PATCH] simplify `cast_resolved` --- src/rstd/cast.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/rstd/cast.rs b/src/rstd/cast.rs index 7d616d9..7ad3ede 100644 --- a/src/rstd/cast.rs +++ b/src/rstd/cast.rs @@ -188,13 +188,11 @@ fn cast_resolved<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>( resolved: ResolutionResult<'a, Ctx, TypelessMentionable<'a, Ctx>>, factory: A::Fctr, ) -> ResolutionResult<'a, Ctx, A> { - match resolved { - Ok(typeless_mentionable) => match typeless_mentionable.cast(factory) { - Ok(mentionable) => Ok(Rc::new(mentionable)), - Err(parse_error) => Err(ResolutionError::Parse(parse_error)), - }, - Err(error) => Err(cast_error::(error)), - } + resolved + .map_err(cast_error::)? + .cast(factory) + .map_err(ResolutionError::Parse) + .map(Rc::new) } fn cast_resolve<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(