Trait chalk_recursive::solve::SolveIterationHelpers
source · trait SolveIterationHelpers<I: Interner>: SolveDatabase<I> {
// Provided methods
fn solve_via_simplification(
&mut self,
canonical_goal: &UCanonicalGoal<I>,
minimums: &mut Minimums,
should_continue: impl Fn() -> bool + Clone,
) -> Fallible<Solution<I>> { ... }
fn solve_from_clauses(
&mut self,
canonical_goal: &UCanonical<InEnvironment<DomainGoal<I>>>,
minimums: &mut Minimums,
should_continue: impl Fn() -> bool + Clone,
) -> Fallible<Solution<I>> { ... }
fn new_inference_table<T: TypeFoldable<I> + HasInterner<Interner = I> + Clone>(
&self,
ucanonical_goal: &UCanonical<InEnvironment<T>>,
) -> (InferenceTable<I>, Substitution<I>, InEnvironment<T>) { ... }
}
Expand description
Helper methods for solve_iteration
, private to this module.
Provided Methods§
fn solve_via_simplification( &mut self, canonical_goal: &UCanonicalGoal<I>, minimums: &mut Minimums, should_continue: impl Fn() -> bool + Clone, ) -> Fallible<Solution<I>>
sourcefn solve_from_clauses(
&mut self,
canonical_goal: &UCanonical<InEnvironment<DomainGoal<I>>>,
minimums: &mut Minimums,
should_continue: impl Fn() -> bool + Clone,
) -> Fallible<Solution<I>>
fn solve_from_clauses( &mut self, canonical_goal: &UCanonical<InEnvironment<DomainGoal<I>>>, minimums: &mut Minimums, should_continue: impl Fn() -> bool + Clone, ) -> Fallible<Solution<I>>
See whether we can solve a goal by implication on any of the given clauses. If multiple such solutions are possible, we attempt to combine them.
fn new_inference_table<T: TypeFoldable<I> + HasInterner<Interner = I> + Clone>( &self, ucanonical_goal: &UCanonical<InEnvironment<T>>, ) -> (InferenceTable<I>, Substitution<I>, InEnvironment<T>)
Object Safety§
This trait is not object safe.