Code for projecting associated types out of trait references.
- The projection cache. Unlike the standard caches, this can include infcx-dependent type variables, therefore we have to roll the cache back each time we roll a snapshot back, to avoid assumptions on yet-unresolved inference variables. Types with placeholder regions also have to be removed when the respective snapshot ends.
- The result of trait evaluation. The order is important here as the evaluation of a list is the maximum of the evaluations.
- Depending on the stage of compilation, we want projection to be more or less conservative.
- UndoLog 🔒