pub trait InferenceConform<'db> {
Show 15 methods
// Required methods
fn conform_ty(
&mut self,
ty0: TypeId<'db>,
ty1: TypeId<'db>,
) -> InferenceResult<TypeId<'db>>;
fn conform_ty_ex(
&mut self,
ty0: TypeId<'db>,
ty1: TypeId<'db>,
ty0_is_self: bool,
) -> InferenceResult<(TypeId<'db>, usize)>;
fn conform_const(
&mut self,
ty0: ConstValueId<'db>,
ty1: ConstValueId<'db>,
) -> InferenceResult<ConstValueId<'db>>;
fn maybe_peel_snapshots(
&mut self,
ty0_is_self: bool,
ty1: TypeId<'db>,
) -> (usize, TypeLongId<'db>);
fn conform_generic_args(
&mut self,
gargs0: &[GenericArgumentId<'db>],
gargs1: &[GenericArgumentId<'db>],
) -> InferenceResult<Vec<GenericArgumentId<'db>>>;
fn conform_generic_arg(
&mut self,
garg0: GenericArgumentId<'db>,
garg1: GenericArgumentId<'db>,
) -> InferenceResult<GenericArgumentId<'db>>;
fn conform_impl(
&mut self,
impl0: ImplId<'db>,
impl1: ImplId<'db>,
) -> InferenceResult<ImplId<'db>>;
fn conform_neg_impl(
&mut self,
neg_impl0: NegativeImplId<'db>,
neg_impl1: NegativeImplId<'db>,
) -> InferenceResult<NegativeImplId<'db>>;
fn conform_traits(
&mut self,
trt0: ConcreteTraitId<'db>,
trt1: ConcreteTraitId<'db>,
) -> InferenceResult<ConcreteTraitId<'db>>;
fn conform_generic_function(
&mut self,
trt0: GenericFunctionId<'db>,
trt1: GenericFunctionId<'db>,
) -> InferenceResult<GenericFunctionId<'db>>;
fn ty_contains_var(&mut self, ty: TypeId<'db>, var: InferenceVar) -> bool;
fn generic_args_contain_var(
&mut self,
generic_args: &[GenericArgumentId<'db>],
var: InferenceVar,
) -> bool;
fn impl_contains_var(
&mut self,
impl_id: ImplId<'db>,
var: InferenceVar,
) -> bool;
fn negative_impl_contains_var(
&mut self,
neg_impl_id: NegativeImplId<'db>,
var: InferenceVar,
) -> bool;
fn function_contains_var(
&mut self,
function_id: FunctionId<'db>,
var: InferenceVar,
) -> bool;
}Expand description
Functions for conforming semantic objects with each other.