Expand description
This module contains code to canonicalize values into a Canonical<'db, T>.
For an overview of what canonicalization is and how it fits into rustc, check out the chapter in the rustc dev guide.
Structs§
- Canonicalize
AllFree 🔒Regions - Canonicalize
Query 🔒Response - Canonicalize
User 🔒Type Annotation - Canonicalizer 🔒
- Original
Query Values - When we canonicalize a value to form a query, we wind up replacing various parts of it with canonical variables. This struct stores those replaced bits to remember for when we process the query result.
Traits§
- Canonicalize
Mode 🔒 - Controls how we canonicalize “free regions” that are not inference variables. This depends on what we are canonicalizing for – e.g., if we are canonicalizing to create a query, we want to replace those with inference variables, since we want to make a maximally general query. But if we are canonicalizing a query response, then we don’t typically replace free regions, as they must have been introduced from other parts of the system.