Skip to main content

Module eval_ctxt

Module eval_ctxt 

Source

Modules§

fast_path
This file contains a number of standalone functions useful for taking fast paths in the trait solver. The exact place where we check for these fast paths changes, and matters a lot for performance. Ideally we’d only check them in evaluate_goal, but when evaluating root goals we can check them earlier and save some time creating an EvalCtxt in the first place.
probe 🔒
solver_region_constraints 🔒
Logic for -Zassumptions-on-binders stuff

Structs§

EvalCtxt

Enums§

CurrentGoalKind 🔒
The kind of goal we’re currently proving.
GenerateProofTree
RerunDecision 🔒

Traits§

SolverDelegateEvalExt

Functions§

evaluate_root_goal_for_proof_tree 🔒
Evaluate a goal to build a proof tree.
evaluate_root_goal_for_proof_tree_raw_provider
Do not call this directly, use the tcx query instead.
maybe_evaluate_root_goal_for_proof_tree_with_higher_recursion_limit 🔒
The old solver doesn’t check depth requirement when looking up cache while the next solver does so. Thus the next solver is more prone to overflow. To mitigate breakages, we re-evaluate the overflowed goal with doubled recursion limit and emit a FCW if it succeeds. See the doc comment on RECURSION_DEPTH_EXCEEDING_LIMIT and #159228 for more details.
maybe_evaluate_root_goal_with_higher_recursion_limit 🔒
The old solver doesn’t check depth requirement when looking up cache while the next solver does so. Thus the next solver is more prone to overflow. To mitigate breakages, we re-evaluate the overflowed goal with doubled recursion limit and emit a FCW if it succeeds. See the doc comment on RECURSION_DEPTH_EXCEEDING_LIMIT and #159228 for more details.
should_rerun_after_erased_canonicalization 🔒