[][src]Trait chalk_solve::ext::GoalExt

pub trait GoalExt<I: Interner> {
    fn into_peeled_goal(
        self,
        interner: &I
    ) -> UCanonical<InEnvironment<Goal<I>>>;
fn into_closed_goal(
        self,
        interner: &I
    ) -> UCanonical<InEnvironment<Goal<I>>>; }

Required methods

fn into_peeled_goal(self, interner: &I) -> UCanonical<InEnvironment<Goal<I>>>

fn into_closed_goal(self, interner: &I) -> UCanonical<InEnvironment<Goal<I>>>

Loading content...

Implementations on Foreign Types

impl<I: Interner> GoalExt<I> for Goal<I>[src]

fn into_peeled_goal(self, interner: &I) -> UCanonical<InEnvironment<Goal<I>>>[src]

Returns a canonical goal in which the outermost exists<> and forall<> quantifiers (as well as implications) have been "peeled" and are converted into free universal or existential variables. Assumes that this goal is a "closed goal" which does not -- at present -- contain any variables. Useful for REPLs and tests but not much else.

fn into_closed_goal(self, interner: &I) -> UCanonical<InEnvironment<Goal<I>>>[src]

Given a goal with no free variables (a "closed" goal), creates a canonical form suitable for solving. This is a suitable choice if you don't actually care about the values of any of the variables within; otherwise, you might want into_peeled_goal.

Panics

Will panic if this goal does in fact contain free variables.

Loading content...

Implementors

Loading content...