Trait cairo_lang_semantic::expr::inference::conform::InferenceConform
source · 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.