pub trait InferenceEmbeddings<'db> {
Show 14 methods
// Required methods
fn infer_impl(
&mut self,
uninferred_impl: UninferredImpl<'db>,
concrete_trait_id: ConcreteTraitId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<ImplId<'db>>;
fn infer_impl_def(
&mut self,
impl_def_id: ImplDefId<'db>,
concrete_trait_id: ConcreteTraitId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<ImplId<'db>>;
fn infer_impl_alias(
&mut self,
impl_alias_id: ImplAliasId<'db>,
concrete_trait_id: ConcreteTraitId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<ImplId<'db>>;
fn infer_generic_assignment(
&mut self,
generic_params: &[GenericParam<'db>],
generic_args: &[GenericArgumentId<'db>],
expected_generic_args: &[GenericArgumentId<'db>],
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<Vec<GenericArgumentId<'db>>>;
fn infer_generic_args(
&mut self,
generic_params: &[GenericParam<'db>],
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<Vec<GenericArgumentId<'db>>>;
fn infer_concrete_trait_by_self(
&mut self,
trait_function: TraitFunctionId<'db>,
self_ty: TypeId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
inference_errors: &mut Vec<(TraitFunctionId<'db>, InferenceError<'db>)>,
) -> Option<(ConcreteTraitId<'db>, usize)>;
fn infer_concrete_trait_by_self_without_errors(
&mut self,
trait_function: TraitFunctionId<'db>,
self_ty: TypeId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> Option<(ConcreteTraitId<'db>, usize)>;
fn infer_generic_arg(
&mut self,
param: &GenericParam<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<GenericArgumentId<'db>>;
fn infer_trait_function(
&mut self,
concrete_trait_function: ConcreteTraitGenericFunctionId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<FunctionId<'db>>;
fn infer_generic_function(
&mut self,
generic_function: GenericFunctionId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> InferenceResult<FunctionId<'db>>;
fn infer_trait_generic_function(
&mut self,
concrete_trait_function: ConcreteTraitGenericFunctionId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> ImplGenericFunctionId<'db>;
fn infer_trait_type(
&mut self,
concrete_trait_type: ConcreteTraitTypeId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> TypeId<'db>;
fn infer_trait_constant(
&mut self,
concrete_trait_constant: ConcreteTraitConstantId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> ImplConstantId<'db>;
fn infer_trait_impl(
&mut self,
concrete_trait_constant: ConcreteTraitImplId<'db>,
lookup_context: ImplLookupContextId<'db>,
stable_ptr: Option<SyntaxStablePtrId<'db>>,
) -> ImplImplId<'db>;
}Expand description
Functions for embedding generic semantic objects in an existing Inference object, by introducing new variables.