pub trait InferenceConform {
    // Required methods
    fn conform_ty(
        &mut self,
        ty0: TypeId,
        ty1: TypeId
    ) -> Result<TypeId, InferenceError>;
    fn conform_ty_ex(
        &mut self,
        ty0: TypeId,
        ty1: TypeId,
        ty0_is_self: bool
    ) -> Result<(TypeId, usize), InferenceError>;
    fn maybe_peel_snapshots(
        &mut self,
        ty0_is_self: bool,
        ty1: TypeId
    ) -> (usize, TypeLongId);
    fn conform_generic_args(
        &mut self,
        gargs0: &[GenericArgumentId],
        gargs1: &[GenericArgumentId]
    ) -> Result<Vec<GenericArgumentId>, InferenceError>;
    fn conform_generic_arg(
        &mut self,
        garg0: GenericArgumentId,
        garg1: GenericArgumentId
    ) -> Result<GenericArgumentId, InferenceError>;
    fn conform_impl(
        &mut self,
        impl0: ImplId,
        impl1: ImplId
    ) -> InferenceResult<ImplId>;
    fn conform_traits(
        &mut self,
        trt0: ConcreteTraitId,
        trt1: ConcreteTraitId
    ) -> Result<ConcreteTraitId, InferenceError>;
    fn ty_contains_var(&mut self, ty: TypeId, var: InferenceVar) -> bool;
    fn generic_args_contain_var(
        &mut self,
        generic_args: &[GenericArgumentId],
        var: InferenceVar
    ) -> bool;
    fn impl_contains_var(&mut self, impl_id: &ImplId, var: InferenceVar) -> bool;
}
Expand description

Functions for conforming semantic objects with each other.

Required Methods§

Implementors§