cast_error
				
					
				
			This commit is contained in:
		
							parent
							
								
									be427e4e87
								
							
						
					
					
						commit
						f08b7d3c7a
					
				@ -169,20 +169,33 @@ impl<'a, Ctx: CastCtx<'a>> TypelessMentionable<'a, Ctx> {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fn cast_resolve<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(
 | 
					fn cast_error<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(
 | 
				
			||||||
    typeless_origin: Rc<dyn Origin<'a, Ctx, Mtbl = TypelessMentionable<'a, Ctx>>>,
 | 
					    error: ResolutionFailure<'a, Ctx, TypelessMentionable<'a, Ctx>>,
 | 
				
			||||||
 | 
					) -> ResolutionFailure<'a, Ctx, A> {
 | 
				
			||||||
 | 
					    ResolutionError::Lookup(match error {
 | 
				
			||||||
 | 
					        ResolutionError::Lookup(lookup_error) => lookup_error,
 | 
				
			||||||
 | 
					        ResolutionError::Parse(parse_error) => Ctx::from_cast(CastError::Typeless(parse_error)),
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn cast_resolved<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(
 | 
				
			||||||
 | 
					    resolved: ResolutionResult<'a, Ctx, TypelessMentionable<'a, Ctx>>,
 | 
				
			||||||
    factory: A::Fctr,
 | 
					    factory: A::Fctr,
 | 
				
			||||||
) -> Resolution<'a, Ctx, A> {
 | 
					) -> ResolutionResult<'a, Ctx, A> {
 | 
				
			||||||
    typeless_origin.resolve_map(|resolved| match resolved {
 | 
					    match resolved {
 | 
				
			||||||
        Ok(typeless_mentionable) => match typeless_mentionable.cast(factory) {
 | 
					        Ok(typeless_mentionable) => match typeless_mentionable.cast(factory) {
 | 
				
			||||||
            Ok(mentionable) => Ok(Rc::new(mentionable)),
 | 
					            Ok(mentionable) => Ok(Rc::new(mentionable)),
 | 
				
			||||||
            Err(parse_error) => Err(ResolutionError::Parse(parse_error)),
 | 
					            Err(parse_error) => Err(ResolutionError::Parse(parse_error)),
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        Err(error) => Err(ResolutionError::Lookup(match error {
 | 
					        Err(error) => Err(cast_error::<Ctx, A>(error)),
 | 
				
			||||||
            ResolutionError::Lookup(lookup_error) => lookup_error,
 | 
					    }
 | 
				
			||||||
            ResolutionError::Parse(parse_error) => Ctx::from_cast(CastError::Typeless(parse_error)),
 | 
					}
 | 
				
			||||||
        })),
 | 
					
 | 
				
			||||||
    })
 | 
					fn cast_resolve<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(
 | 
				
			||||||
 | 
					    typeless_origin: Rc<dyn Origin<'a, Ctx, Mtbl = TypelessMentionable<'a, Ctx>>>,
 | 
				
			||||||
 | 
					    factory: A::Fctr,
 | 
				
			||||||
 | 
					) -> Resolution<'a, Ctx, A> {
 | 
				
			||||||
 | 
					    typeless_origin.resolve_map(|resolved| cast_resolved(resolved, factory))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fn cast_origin<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(
 | 
					fn cast_origin<'a, Ctx: CastCtx<'a>, A: Mentionable<'a, Ctx>>(
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user