Closed
Description
As discussed in the WG-traits planning meeting today, we need to decide how we will represent higher-ranked types in rustc. We decided to try for using debruijn indexing more universally, much as it is done in chalk. The plan is to generalize the existing CanonicalVar
so that it represents a "bound" thing -- probably it just gets unified with DebruijnIndex
. This will take a few steps, each of which I plan to describe in its own sub-issue:
- Cleanup
Binder
fields (cleanup Binder fields #49814) - Make
DebruijnIndex
0-based (Refactor DebruijnIndex to be 0-based #49813) - Unify
CanonicalVar
andDebruijnIndex
(UnifyCanonicalVar
andDebruijnIndex
#49887) - Maybe cleanup how regions are handled to use distinct indices for each region, rather than names (somewhat separate)