[−][src]Trait chalk_engine::slg::UnificationOps
Methods for unifying and manipulating terms and binders.
Required methods
pub fn instantiate_binders_universally(
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
[src]
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
pub fn instantiate_binders_existentially(
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
[src]
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
pub fn debug_ex_clause<'v>(
&mut self,
interner: &I,
value: &'v ExClause<I>
) -> Box<dyn Debug + 'v>
[src]
&mut self,
interner: &I,
value: &'v ExClause<I>
) -> Box<dyn Debug + 'v>
pub fn fully_canonicalize_goal(
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> (UCanonical<InEnvironment<Goal<I>>>, UniverseMap)
[src]
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> (UCanonical<InEnvironment<Goal<I>>>, UniverseMap)
pub fn canonicalize_ex_clause(
&mut self,
interner: &I,
value: ExClause<I>
) -> Canonical<ExClause<I>>
[src]
&mut self,
interner: &I,
value: ExClause<I>
) -> Canonical<ExClause<I>>
pub fn canonicalize_constrained_subst(
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>
) -> Canonical<ConstrainedSubst<I>>
[src]
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>
) -> Canonical<ConstrainedSubst<I>>
pub fn canonicalize_answer_subst(
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>,
delayed_subgoals: Vec<InEnvironment<Goal<I>>>
) -> Canonical<AnswerSubst<I>>
[src]
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>,
delayed_subgoals: Vec<InEnvironment<Goal<I>>>
) -> Canonical<AnswerSubst<I>>
pub fn invert_goal(
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> Option<InEnvironment<Goal<I>>>
[src]
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> Option<InEnvironment<Goal<I>>>
pub fn relate_generic_args_into_ex_clause(
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &GenericArg<I>,
b: &GenericArg<I>,
ex_clause: &mut ExClause<I>
) -> Fallible<()>
[src]
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &GenericArg<I>,
b: &GenericArg<I>,
ex_clause: &mut ExClause<I>
) -> Fallible<()>
First unify the parameters, then add the residual subgoals as new subgoals of the ex-clause. Also add region constraints.
If the parameters fail to unify, then Error
is returned
pub fn relate_tys_into_ex_clause(
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &Ty<I>,
b: &Ty<I>,
ex_clause: &mut ExClause<I>
) -> FallibleOrFloundered<()>
[src]
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &Ty<I>,
b: &Ty<I>,
ex_clause: &mut ExClause<I>
) -> FallibleOrFloundered<()>
Implementors
impl<I: Interner> UnificationOps<I> for TruncatingInferenceTable<I>
[src]
pub fn instantiate_binders_universally(
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
[src]
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
pub fn instantiate_binders_existentially(
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
[src]
&mut self,
interner: &I,
arg: Binders<Goal<I>>
) -> Goal<I>
pub fn debug_ex_clause<'v>(
&mut self,
interner: &I,
value: &'v ExClause<I>
) -> Box<dyn Debug + 'v>
[src]
&mut self,
interner: &I,
value: &'v ExClause<I>
) -> Box<dyn Debug + 'v>
pub fn fully_canonicalize_goal(
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> (UCanonical<InEnvironment<Goal<I>>>, UniverseMap)
[src]
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> (UCanonical<InEnvironment<Goal<I>>>, UniverseMap)
pub fn canonicalize_ex_clause(
&mut self,
interner: &I,
value: ExClause<I>
) -> Canonical<ExClause<I>>
[src]
&mut self,
interner: &I,
value: ExClause<I>
) -> Canonical<ExClause<I>>
pub fn canonicalize_constrained_subst(
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>
) -> Canonical<ConstrainedSubst<I>>
[src]
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>
) -> Canonical<ConstrainedSubst<I>>
pub fn canonicalize_answer_subst(
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>,
delayed_subgoals: Vec<InEnvironment<Goal<I>>>
) -> Canonical<AnswerSubst<I>>
[src]
&mut self,
interner: &I,
subst: Substitution<I>,
constraints: Vec<InEnvironment<Constraint<I>>>,
delayed_subgoals: Vec<InEnvironment<Goal<I>>>
) -> Canonical<AnswerSubst<I>>
pub fn invert_goal(
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> Option<InEnvironment<Goal<I>>>
[src]
&mut self,
interner: &I,
value: InEnvironment<Goal<I>>
) -> Option<InEnvironment<Goal<I>>>
pub fn relate_generic_args_into_ex_clause(
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &GenericArg<I>,
b: &GenericArg<I>,
ex_clause: &mut ExClause<I>
) -> Fallible<()>
[src]
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &GenericArg<I>,
b: &GenericArg<I>,
ex_clause: &mut ExClause<I>
) -> Fallible<()>
pub fn relate_tys_into_ex_clause(
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &Ty<I>,
b: &Ty<I>,
ex_clause: &mut ExClause<I>
) -> FallibleOrFloundered<()>
[src]
&mut self,
interner: &I,
db: &dyn UnificationDatabase<I>,
environment: &Environment<I>,
variance: Variance,
a: &Ty<I>,
b: &Ty<I>,
ex_clause: &mut ExClause<I>
) -> FallibleOrFloundered<()>