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.
filter_irrelevant_region_constraints ๐Ÿ”’
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 doing so prevents overflow.
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 doing so prevents overflow.
should_rerun_after_erased_canonicalization ๐Ÿ”’