Trait rustc_trait_selection::solve::InferCtxtEvalExt
source · 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§
sourcefn 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>>)
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.