pub trait InferCtxtEvalExt<'tcx> {
    // Required method
    fn evaluate_root_goal(
        &self,
        goal: Goal<'tcx, Predicate<'tcx>>,
        generate_proof_tree: GenerateProofTree
    ) -> (Result<(bool, Certainty, Vec<Goal<'tcx, Predicate<'tcx>>>), NoSolution>, Option<GoalEvaluation<'tcx>>);
}

Required Methods§

source

fn evaluate_root_goal( &self, goal: Goal<'tcx, Predicate<'tcx>>, generate_proof_tree: GenerateProofTree ) -> (Result<(bool, Certainty, Vec<Goal<'tcx, Predicate<'tcx>>>), NoSolution>, Option<GoalEvaluation<'tcx>>)

Evaluates a goal from outside of the trait solver.

Using this while inside of the solver is wrong as it uses a new search graph which would break cycle detection.

Implementors§

source§

impl<'tcx> InferCtxtEvalExt<'tcx> for InferCtxt<'tcx>