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
) -> InferenceResult<bool>;
fn generic_args_contain_var(
&mut self,
generic_args: &[GenericArgumentId],
var: InferenceVar
) -> InferenceResult<bool>;
fn impl_contains_var(
&mut self,
impl_id: &ImplId,
var: InferenceVar
) -> Result<bool, InferenceError>;
}
Expand description
Functions for conforming semantic objects with each other.