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 anEvalCtxtin the first place. - probe 🔒
- solver_
region_ 🔒constraints - Logic for
-Zassumptions-on-bindersstuff
Structs§
Enums§
- Current
Goal 🔒Kind - The kind of goal we’re currently proving.
- Generate
Proof Tree - Rerun
Decision 🔒
Traits§
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
tcxquery 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_LIMITand #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_LIMITand #159228 for more details. - should_
rerun_ 🔒after_ erased_ canonicalization